diff --git a/src/main/java/org/gcube/accounting/analytics/TotalFilters.java b/src/main/java/org/gcube/accounting/analytics/TotalFilters.java index d7529da..3527242 100644 --- a/src/main/java/org/gcube/accounting/analytics/TotalFilters.java +++ b/src/main/java/org/gcube/accounting/analytics/TotalFilters.java @@ -2,21 +2,52 @@ package org.gcube.accounting.analytics; import java.util.List; +import org.gcube.accounting.datamodel.AggregatedUsageRecord; +/** + * Object for calculate quota + * + * + * @author pieve + * + */ public class TotalFilters { + protected Class> clz; + protected TemporalConstraint temporalConstraint; 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; - } - + protected String identifier; + protected Double d; + protected String orderingProperty; + + + public TemporalConstraint getTemporalConstraint() { + return temporalConstraint; + } + + public void setTemporalConstraint(TemporalConstraint temporalConstraint) { + this.temporalConstraint = temporalConstraint; + } + + public Class> getClz() { + return clz; + } + + public void setClz(Class> clz) { + this.clz = clz; + } + + public TotalFilters(){} + + public TotalFilters(String identifier,Class> clz,TemporalConstraint temporalConstraint,List totalFilters){ + super(); + this.totalFilters=totalFilters; + this.clz=clz; + this.temporalConstraint=temporalConstraint; + this.identifier=identifier; + + } + public List getTotalFilters() { return totalFilters; } @@ -25,6 +56,14 @@ public class TotalFilters { this.totalFilters = totalFilters; } + + public String getIdentifier() { + return identifier; + } + + public void setIdentifier(String identifier) { + this.identifier = identifier; + } public Double getD() { return d; } @@ -40,9 +79,16 @@ public class TotalFilters { public void setOrderingProperty(String orderingProperty) { this.orderingProperty = orderingProperty; } + @Override public String toString() { - return "TotalFilters [totalFilters=" + totalFilters + ", d=" + d + return "TotalFilters [clz=" + clz + ", temporalConstraint=" + + temporalConstraint + ", totalFilters=" + totalFilters + + ", identifier=" + identifier + ", 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 6bb3673..0c294a8 100644 --- a/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceBackendQuery.java +++ b/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceBackendQuery.java @@ -168,6 +168,10 @@ public interface AccountingPersistenceBackendQuery { /** + * + * getUsageValueQuota + * use for a specifiy consumer id and for single quota + * * 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 @@ -181,22 +185,58 @@ public interface AccountingPersistenceBackendQuery { * @return * @throws Exception */ + /* public List getUsageValueQuota(Class> clz, TemporalConstraint temporalConstraint, List filterPackageQuota) throws Exception; - +*/ /** - * - * @param clz - * @param temporalConstraint + * getUsageValueQuotaTotal + * + * Example for crequire 2 different quota (lucio.lelii for service and alessandro.pieve for storage) + * Input: + * [ + * TotalFilters [ + * clz=class org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord, + * temporalConstraint=StartTime : 2015-05-01 11:42:34:515 UTC (1430480554515 millis), EndTime : 2016-11-09 11:42:34:515 UTC (1478691754515 millis), + * Aggregated DAILY, + * totalFilters=[ + * Filters [filters=[ + * { "consumerId" : "lucio.lelii" }, + * { "serviceClass" : "DataAccess" }, + * { "serviceName" : "CkanConnector" } + * ], d=null, orderingProperty=null], + * Filters [filters=[ + * { "consumerId" : "lucio.lelii" }, + * { "serviceClass" : "VREManagement" } + * ], d=null, orderingProperty=null] + * ], d=null, orderingProperty=null] + * ] + * Output: + * [ + * TotalFilters [ + * clz=class org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord, + * temporalConstraint=StartTime : 2015-05-01 11:42:34:515 UTC (1430480554515 millis), EndTime : 2016-11-09 11:42:34:515 UTC (1478691754515 millis), + * Aggregated DAILY, + * totalFilters=[ + * Filters [filters=[ + * { "consumerId" : "lucio.lelii" }, + * { "serviceClass" : "DataAccess" }, + * { "serviceName" : "CkanConnector" } + * ], d=1.0, orderingProperty=operationCount], + * Filters [filters=[ + * { "consumerId" : "lucio.lelii" }, + * { "serviceClass" : "VREManagement" } + * ], d=1.0, orderingProperty=operationCount] + * ], d=2.0, orderingProperty=null] + * ] * @param listUsage * @return * @throws Exception */ public List getUsageValueQuotaTotal( - Class> clz, - TemporalConstraint temporalConstraint, List listUsage) + 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 c7336e4..ae7f86b 100644 --- a/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceQuery.java +++ b/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceQuery.java @@ -286,23 +286,13 @@ public class AccountingPersistenceQuery implements AccountingPersistenceBackendQ .getUsageValue(clz, temporalConstraint, applicant); } - /*New task for quota*/ - @Override - public List getUsageValueQuota(Class> clz, - TemporalConstraint temporalConstraint, List listUsage) - throws Exception { - - return AccountingPersistenceBackendQueryFactory.getInstance() - .getUsageValueQuota(clz, temporalConstraint, listUsage); - } @Override - public List getUsageValueQuotaTotal(Class> clz, - TemporalConstraint temporalConstraint, List listUsage) + public List getUsageValueQuotaTotal( List listUsage) throws Exception { return AccountingPersistenceBackendQueryFactory.getInstance() - .getUsageValueQuotaTotal(clz, temporalConstraint, listUsage); + .getUsageValueQuotaTotal(listUsage); }