From ece86afce3b46b9d3c7bcc16f4e67d1506ac5c36 Mon Sep 17 00:00:00 2001 From: Alessandro Pieve Date: Tue, 15 Nov 2016 10:21:51 +0000 Subject: [PATCH] git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-analytics@134162 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../{Filters.java => FiltersValue.java} | 16 +-- .../analytics/TemporalConstraint.java | 5 +- .../analytics/UsageServiceValue.java | 98 ++++++++++++++++ ...talFilters.java => UsageStorageValue.java} | 106 +++++++++--------- .../accounting/analytics/UsageValue.java | 33 ++++++ .../AccountingPersistenceBackendQuery.java | 7 +- .../AccountingPersistenceQuery.java | 5 +- 7 files changed, 197 insertions(+), 73 deletions(-) rename src/main/java/org/gcube/accounting/analytics/{Filters.java => FiltersValue.java} (83%) create mode 100644 src/main/java/org/gcube/accounting/analytics/UsageServiceValue.java rename src/main/java/org/gcube/accounting/analytics/{TotalFilters.java => UsageStorageValue.java} (55%) create mode 100644 src/main/java/org/gcube/accounting/analytics/UsageValue.java diff --git a/src/main/java/org/gcube/accounting/analytics/Filters.java b/src/main/java/org/gcube/accounting/analytics/FiltersValue.java similarity index 83% rename from src/main/java/org/gcube/accounting/analytics/Filters.java rename to src/main/java/org/gcube/accounting/analytics/FiltersValue.java index 7d63b5d..cf67feb 100644 --- a/src/main/java/org/gcube/accounting/analytics/Filters.java +++ b/src/main/java/org/gcube/accounting/analytics/FiltersValue.java @@ -5,27 +5,27 @@ import java.util.List; * @author Alessandro Pieve (ISTI - CNR) alessandro.pieve@isti.cnr.it * */ -public class Filters { +public class FiltersValue { protected List filters; protected Double d; protected String orderingProperty; - public Filters(){} + public FiltersValue(){} - public Filters(List filters, Number n, String orderingProperty) { + public FiltersValue(List filters, Number n, String orderingProperty) { super(); this.filters=filters; this.d = n.doubleValue(); this.orderingProperty = orderingProperty; } - public List getFilters() { + public List getFiltersValue() { return filters; } - public void setFilters(List filters) { + public void setFiltersValue(List filters) { this.filters = filters; } @@ -65,7 +65,7 @@ public class Filters { return false; if (getClass() != obj.getClass()) return false; - Filters other = (Filters) obj; + FiltersValue other = (FiltersValue) obj; if (d == null) { if (other.d != null) return false; @@ -86,8 +86,10 @@ public class Filters { @Override public String toString() { - return "Filters [filters=" + filters + ", d=" + d + return "FiltersValue [filters=" + filters + ", d=" + d + ", orderingProperty=" + orderingProperty + "]"; } + + } diff --git a/src/main/java/org/gcube/accounting/analytics/TemporalConstraint.java b/src/main/java/org/gcube/accounting/analytics/TemporalConstraint.java index ba54806..52d3706 100644 --- a/src/main/java/org/gcube/accounting/analytics/TemporalConstraint.java +++ b/src/main/java/org/gcube/accounting/analytics/TemporalConstraint.java @@ -13,16 +13,13 @@ import java.util.SortedSet; import java.util.TimeZone; import java.util.TreeSet; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - /** * @author Luca Frosini (ISTI - CNR) * */ public class TemporalConstraint { - private static final Logger logger = LoggerFactory.getLogger(TemporalConstraint.class); + private static final String UTC_TIME_ZONE = "UTC"; diff --git a/src/main/java/org/gcube/accounting/analytics/UsageServiceValue.java b/src/main/java/org/gcube/accounting/analytics/UsageServiceValue.java new file mode 100644 index 0000000..18a01b4 --- /dev/null +++ b/src/main/java/org/gcube/accounting/analytics/UsageServiceValue.java @@ -0,0 +1,98 @@ +package org.gcube.accounting.analytics; + +import java.util.List; + +import org.gcube.accounting.datamodel.AggregatedUsageRecord; + +public class UsageServiceValue extends UsageValue { + + + protected Class> clz; + protected TemporalConstraint temporalConstraint; + protected List filtersValue; + protected String identifier; + protected Double d; + protected String orderingProperty; + + public String getIdentifier() { + return identifier; + } + public void setIdentifier(String identifier) { + this.identifier = identifier; + } + + public Double getD() { + return d; + } + + public void setD(Double d) { + this.d = d; + } + public TemporalConstraint getTemporalConstraint() { + if (temporalConstraint!=null) + return temporalConstraint; + else + return null; + + } + + public String getOrderingProperty() { + return orderingProperty; + } + + public void setOrderingProperty(String orderingProperty) { + this.orderingProperty = orderingProperty; + } + public void setTemporalConstraint(TemporalConstraint temporalConstraint) { + this.temporalConstraint = temporalConstraint; + } + + public Class> getClz() { + return clz; + } + + public void setClz(String context,Class> clz) { + this.clz = clz; + } + + public UsageServiceValue(){} + + public UsageServiceValue(String context,String identifier,Class> clz,TemporalConstraint temporalConstraint,List filtersValue){ + super(); + this.context=context; + this.filtersValue=filtersValue; + this.clz=clz; + this.temporalConstraint=temporalConstraint; + this.identifier=identifier; + + } + + public List getFiltersValue() { + return filtersValue; + } + + public void setFiltersValue(List filtersValue) { + this.filtersValue = filtersValue; + } + + @Override + public String getContext() { + return this.context; + } + @Override + public void setContext(String context) { + this.context=context; + + } + @Override + public String toString() { + return "UsageServiceValue [clz=" + clz + ", temporalConstraint=" + + temporalConstraint + ", filtersValue=" + filtersValue + + ", identifier=" + identifier + ", d=" + d + + ", orderingProperty=" + orderingProperty + ", context=" + + context + "]"; + } + + + +} diff --git a/src/main/java/org/gcube/accounting/analytics/TotalFilters.java b/src/main/java/org/gcube/accounting/analytics/UsageStorageValue.java similarity index 55% rename from src/main/java/org/gcube/accounting/analytics/TotalFilters.java rename to src/main/java/org/gcube/accounting/analytics/UsageStorageValue.java index 3527242..2b515b4 100644 --- a/src/main/java/org/gcube/accounting/analytics/TotalFilters.java +++ b/src/main/java/org/gcube/accounting/analytics/UsageStorageValue.java @@ -1,28 +1,40 @@ 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; - +public class UsageStorageValue extends UsageValue { + protected Class> clz; + protected TemporalConstraint temporalConstraint; protected String identifier; protected Double d; protected String orderingProperty; - + public String getIdentifier() { + return identifier; + } + public void setIdentifier(String identifier) { + this.identifier = identifier; + } + + 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; + } public TemporalConstraint getTemporalConstraint() { - return temporalConstraint; + if (temporalConstraint!=null) + return temporalConstraint; + else + return null; } public void setTemporalConstraint(TemporalConstraint temporalConstraint) { @@ -37,58 +49,42 @@ public class TotalFilters { this.clz = clz; } - public TotalFilters(){} + public UsageStorageValue(){} - public TotalFilters(String identifier,Class> clz,TemporalConstraint temporalConstraint,List totalFilters){ + + public UsageStorageValue(String context,String identifier,Class> clz){ super(); - this.totalFilters=totalFilters; + this.context=context; this.clz=clz; - this.temporalConstraint=temporalConstraint; this.identifier=identifier; } - public List getTotalFilters() { - return totalFilters; + public UsageStorageValue(String context,String identifier,Class> clz,TemporalConstraint temporalConstraint){ + super(); + this.context=context; + this.identifier=identifier; + this.clz=clz; + this.temporalConstraint=temporalConstraint; + } - - public void setTotalFilters(List totalFilters) { - this.totalFilters = totalFilters; + @Override + public String getContext() { + return this.context; } - - - public String getIdentifier() { - return identifier; + @Override + public void setContext(String context) { + this.context=context; + } - - public void setIdentifier(String identifier) { - this.identifier = identifier; - } - 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 [clz=" + clz + ", temporalConstraint=" - + temporalConstraint + ", totalFilters=" + totalFilters - + ", identifier=" + identifier + ", d=" + d - + ", orderingProperty=" + orderingProperty + "]"; + return "UsageStorageValue [clz=" + clz + ", temporalConstraint=" + + temporalConstraint + ", identifier=" + identifier + ", d=" + + d + ", orderingProperty=" + orderingProperty + + ", context=" + context + + "]"; } - - } diff --git a/src/main/java/org/gcube/accounting/analytics/UsageValue.java b/src/main/java/org/gcube/accounting/analytics/UsageValue.java new file mode 100644 index 0000000..3c19ace --- /dev/null +++ b/src/main/java/org/gcube/accounting/analytics/UsageValue.java @@ -0,0 +1,33 @@ +package org.gcube.accounting.analytics; + +import org.gcube.accounting.datamodel.AggregatedUsageRecord; +/** + * Object for calculate quota + * + * + * @author pieve + * + */ +public abstract class UsageValue { + protected Class> clz; + protected TemporalConstraint temporalConstraint; + //protected List filtersValue; + protected String identifier; + protected Double d; + protected String orderingProperty; + protected String context; + + public UsageValue(){} + public abstract Class> getClz(); + public abstract String getIdentifier(); + public abstract Double getD(); + public abstract String getOrderingProperty(); + public abstract TemporalConstraint getTemporalConstraint(); + public abstract String getContext(); + + public abstract void setOrderingProperty(String orderingProperty); + public abstract void setD(Double d); + public abstract void setContext(String context); + + +} 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 0c294a8..1714a3c 100644 --- a/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceBackendQuery.java +++ b/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceBackendQuery.java @@ -9,11 +9,10 @@ import java.util.SortedMap; import java.util.SortedSet; import org.gcube.accounting.analytics.Filter; -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.UsageValue; import org.gcube.accounting.analytics.exception.DuplicatedKeyFilterException; import org.gcube.accounting.analytics.exception.KeyException; import org.gcube.accounting.analytics.exception.ValueException; @@ -235,8 +234,8 @@ public interface AccountingPersistenceBackendQuery { * @return * @throws Exception */ - public List getUsageValueQuotaTotal( - List listUsage) + public List getUsageValueQuotaTotal( + 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 ae7f86b..76aa084 100644 --- a/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceQuery.java +++ b/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceQuery.java @@ -15,11 +15,10 @@ import java.util.TreeMap; import javax.activity.InvalidActivityException; import org.gcube.accounting.analytics.Filter; -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.UsageValue; import org.gcube.accounting.analytics.exception.DuplicatedKeyFilterException; import org.gcube.accounting.analytics.exception.KeyException; import org.gcube.accounting.analytics.exception.ValueException; @@ -288,7 +287,7 @@ public class AccountingPersistenceQuery implements AccountingPersistenceBackendQ @Override - public List getUsageValueQuotaTotal( List listUsage) + public List getUsageValueQuotaTotal( List listUsage) throws Exception { return AccountingPersistenceBackendQueryFactory.getInstance()