From c0ca3f0b6372dfaa95f306e27de2e31e1386a584 Mon Sep 17 00:00:00 2001 From: Alessandro Pieve Date: Thu, 13 Oct 2016 16:18:19 +0000 Subject: [PATCH] git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-analytics@133189 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../accounting/analytics/TotalFilters.java | 48 +++++++++++++++++++ .../AccountingPersistenceBackendQuery.java | 22 +++++++-- .../AccountingPersistenceQuery.java | 13 ++++- 3 files changed, 76 insertions(+), 7 deletions(-) create mode 100644 src/main/java/org/gcube/accounting/analytics/TotalFilters.java diff --git a/src/main/java/org/gcube/accounting/analytics/TotalFilters.java b/src/main/java/org/gcube/accounting/analytics/TotalFilters.java new file mode 100644 index 0000000..d7529da --- /dev/null +++ b/src/main/java/org/gcube/accounting/analytics/TotalFilters.java @@ -0,0 +1,48 @@ +package org.gcube.accounting.analytics; + +import java.util.List; + +public class TotalFilters { + protected List totalFilters; + protected Double d; + protected String orderingProperty; + public TotalFilters(){} + + public TotalFilters(List totalFilters, Number n, String orderingProperty) { + super(); + this.totalFilters=totalFilters; + this.d = n.doubleValue(); + this.orderingProperty = orderingProperty; + } + + + + public List getTotalFilters() { + return totalFilters; + } + + public void setTotalFilters(List totalFilters) { + this.totalFilters = totalFilters; + } + + public Double getD() { + return d; + } + + public void setD(Double d) { + this.d = d; + } + + public String getOrderingProperty() { + return orderingProperty; + } + + public void setOrderingProperty(String orderingProperty) { + this.orderingProperty = orderingProperty; + } + @Override + public String toString() { + return "TotalFilters [totalFilters=" + totalFilters + ", d=" + d + + ", orderingProperty=" + orderingProperty + "]"; + } +} diff --git a/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceBackendQuery.java b/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceBackendQuery.java index b31ce46..f7fcb4d 100644 --- a/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceBackendQuery.java +++ b/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceBackendQuery.java @@ -3,7 +3,6 @@ */ package org.gcube.accounting.analytics.persistence; -import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.SortedMap; @@ -14,6 +13,7 @@ import org.gcube.accounting.analytics.Filters; import org.gcube.accounting.analytics.Info; import org.gcube.accounting.analytics.NumberedFilter; import org.gcube.accounting.analytics.TemporalConstraint; +import org.gcube.accounting.analytics.TotalFilters; import org.gcube.accounting.analytics.exception.DuplicatedKeyFilterException; import org.gcube.accounting.analytics.exception.KeyException; import org.gcube.accounting.analytics.exception.ValueException; @@ -168,10 +168,8 @@ public interface AccountingPersistenceBackendQuery { /** - * Return a JsonObject with value - * e.g.for StorageUsageRecord {Storage:["dataVolume":1860328,"operationCount":4115]} - * e.g. for ServiceUsageRcord {NameService1:["operationCount":1651624],NameService2:["operationCount":1651624],} - * e.g. for TaskUsageRcord {NameTask1:["operationCount":1651624],NameTask1:["operationCount":1651624],} + * in:[{ "consumerId" : "alessandro.pieve" }, { "serviceClass" : "DataAccess" }, { "serviceName" : "CkanConnector" }], d=null, orderingProperty=null] + * out:[{ "consumerId" : "alessandro.pieve" }, { "serviceClass" : "DataAccess" }, { "serviceName" : "CkanConnector" }], d=88.0, orderingProperty=operationCount] * @param clz * the Usage Record Class of interest * @param temporalConstraint @@ -188,6 +186,20 @@ public interface AccountingPersistenceBackendQuery { List filterPackageQuota) throws Exception; + /** + * + * @param clz + * @param temporalConstraint + * @param listUsage + * @return + * @throws Exception + */ + public List getUsageValueQuotaTotal( + Class> clz, + TemporalConstraint temporalConstraint, List listUsage) + throws Exception; + + diff --git a/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceQuery.java b/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceQuery.java index 6ba6015..08ee0c1 100644 --- a/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceQuery.java +++ b/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceQuery.java @@ -19,6 +19,7 @@ import org.gcube.accounting.analytics.Filters; import org.gcube.accounting.analytics.Info; import org.gcube.accounting.analytics.NumberedFilter; import org.gcube.accounting.analytics.TemporalConstraint; +import org.gcube.accounting.analytics.TotalFilters; import org.gcube.accounting.analytics.exception.DuplicatedKeyFilterException; import org.gcube.accounting.analytics.exception.KeyException; import org.gcube.accounting.analytics.exception.ValueException; @@ -291,10 +292,18 @@ public class AccountingPersistenceQuery implements AccountingPersistenceBackendQ TemporalConstraint temporalConstraint, List listUsage) throws Exception { // TODO Auto-generated method stub - return null; + return AccountingPersistenceBackendQueryFactory.getInstance() + .getUsageValueQuota(clz, temporalConstraint, listUsage); } - + @Override + public List getUsageValueQuotaTotal(Class> clz, + TemporalConstraint temporalConstraint, List listUsage) + throws Exception { + // TODO Auto-generated method stub + return AccountingPersistenceBackendQueryFactory.getInstance() + .getUsageValueQuotaTotal(clz, temporalConstraint, listUsage); + } }