Skip to content

Commit bfba139

Browse files
committed
added getUserStats and clone method
1 parent d22704d commit bfba139

2 files changed

Lines changed: 35 additions & 1 deletion

File tree

src/main/java/de/unirostock/sems/cbarchive/web/QuotaManager.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,20 @@ public StatisticData getStats() {
125125
}
126126
}
127127

128+
public StatisticData getUserStats(UserManager user) {
129+
StatisticData stats = getStats().clone();
130+
131+
if( user != null ) {
132+
// add user stats
133+
if( Fields.QUOTA_WORKSPACE_SIZE != Fields.QUOTA_UNLIMITED )
134+
stats.setWorkspaceSizeQuota( (double) Fields.QUOTA_WORKSPACE_SIZE / (double) getWorkspaceSize( user.getWorkspace() ) );
135+
if( Fields.QUOTA_ARCHIVE_LIMIT != Fields.QUOTA_UNLIMITED)
136+
stats.setArchiveCountQuota( (double) Fields.QUOTA_ARCHIVE_LIMIT / (double) user.getArchives().size() );
137+
}
138+
139+
return stats;
140+
}
141+
128142
private void generateStats() {
129143

130144
if( (workerThread == null || workerThread.isAlive() == false) && workerLock.tryLock() ) {

src/main/java/de/unirostock/sems/cbarchive/web/dataholder/StatisticData.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import com.fasterxml.jackson.annotation.JsonInclude.Include;
88

99
@JsonInclude(Include.NON_DEFAULT)
10-
public class StatisticData implements Serializable {
10+
public class StatisticData implements Serializable, Cloneable {
1111

1212
private static final long serialVersionUID = -3935699299597297002L;
1313

@@ -130,4 +130,24 @@ public void setArchivesPerWorkspace(double archivesPerWorkspace) {
130130
this.archivesPerWorkspace = archivesPerWorkspace;
131131
}
132132

133+
@Override
134+
public StatisticData clone() {
135+
StatisticData clone = new StatisticData();
136+
137+
clone.archiveCountQuota = archiveCountQuota;
138+
clone.archivesPerWorkspace = clone.archivesPerWorkspace;
139+
clone.avgArchiveCountQuota = avgArchiveCountQuota;
140+
clone.avgWorkspaceAge = avgWorkspaceAge;
141+
clone.avgWorkspaceSizeQuota = avgWorkspaceSizeQuota;
142+
clone.sizePerWorkspace = sizePerWorkspace;
143+
clone.totalQuota = totalQuota;
144+
clone.totalSize = totalSize;
145+
clone.workspaceCount = workspaceCount;
146+
clone.workspaceSizeQuota = workspaceSizeQuota;
147+
148+
clone.generated = new Date(generated.getTime());
149+
150+
return clone;
151+
}
152+
133153
}

0 commit comments

Comments
 (0)