diff --git a/pom.xml b/pom.xml
index d6465d8..0cbe63d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
org.gcube.accounting
accounting-analytics
- 2.2.0-SNAPSHOT
+ 2.3.0-SNAPSHOT
accounting-analytics
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 f7fcb4d..6bb3673 100644
--- a/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceBackendQuery.java
+++ b/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceBackendQuery.java
@@ -200,8 +200,17 @@ public interface AccountingPersistenceBackendQuery {
throws Exception;
-
-
-
+ /**
+ * Return a SortedMap containing the TimeSeries for each context.
+ * @param clz
+ * @param temporalConstraint
+ * @param filters
+ * @param contexts
+ * @return
+ */
+ public SortedMap> getContextTimeSeries(
+ Class extends AggregatedRecord, ?>> clz,
+ TemporalConstraint temporalConstraint, List filters,List contexts)
+ 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 08ee0c1..c7336e4 100644
--- a/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceQuery.java
+++ b/src/main/java/org/gcube/accounting/analytics/persistence/AccountingPersistenceQuery.java
@@ -271,7 +271,7 @@ public class AccountingPersistenceQuery implements AccountingPersistenceBackendQ
Class extends AggregatedRecord, ?>> clz,
TemporalConstraint temporalConstraint, List filters,
String key) throws Exception {
- // TODO Auto-generated method stub
+
return AccountingPersistenceBackendQueryFactory.getInstance()
.getFilterValues(clz, temporalConstraint, filters,
key);
@@ -281,17 +281,17 @@ public class AccountingPersistenceQuery implements AccountingPersistenceBackendQ
public JSONObject getUsageValue(Class extends AggregatedRecord, ?>> clz,
TemporalConstraint temporalConstraint, Filter applicant)
throws Exception {
- // TODO Auto-generated method stub
+
return AccountingPersistenceBackendQueryFactory.getInstance()
.getUsageValue(clz, temporalConstraint, applicant);
}
-
+
/*New task for quota*/
@Override
public List getUsageValueQuota(Class extends AggregatedRecord, ?>> clz,
TemporalConstraint temporalConstraint, List listUsage)
throws Exception {
- // TODO Auto-generated method stub
+
return AccountingPersistenceBackendQueryFactory.getInstance()
.getUsageValueQuota(clz, temporalConstraint, listUsage);
}
@@ -300,10 +300,55 @@ public class AccountingPersistenceQuery implements AccountingPersistenceBackendQ
public List getUsageValueQuotaTotal(Class extends AggregatedRecord, ?>> clz,
TemporalConstraint temporalConstraint, List listUsage)
throws Exception {
- // TODO Auto-generated method stub
+
return AccountingPersistenceBackendQueryFactory.getInstance()
.getUsageValueQuotaTotal(clz, temporalConstraint, listUsage);
}
-
+
+
+
+ @Override
+ public SortedMap> getContextTimeSeries(
+ Class extends AggregatedRecord, ?>> clz,
+ TemporalConstraint temporalConstraint, List filters,List contexts)
+ throws Exception {
+
+ return AccountingPersistenceBackendQueryFactory.getInstance()
+ .getContextTimeSeries(clz, temporalConstraint, filters, contexts);
+ }
+
+
+ public SortedMap> getContextTimeSeries(
+ Class extends AggregatedRecord, ?>> clz,
+ TemporalConstraint temporalConstraint, List filters,
+ List contexts, boolean pad)
+ throws DuplicatedKeyFilterException,
+ Exception {
+ SortedMap> got;
+ got = AccountingPersistenceBackendQueryFactory.getInstance()
+ .getContextTimeSeries(clz, temporalConstraint, filters, contexts);
+ int count = got.size();
+ Filter firstRemovalKey = null;
+ for(Filter nf : got.keySet()){
+ if(--count>=0){
+ if(pad){
+ padMap(got.get(nf), temporalConstraint);
+
+ }
+ }else{
+ if(firstRemovalKey==null){
+ firstRemovalKey = nf;
+ }else{
+ break;
+ }
+ }
+ }
+ if(firstRemovalKey!=null){
+ return got.subMap(got.firstKey(), firstRemovalKey);
+ }
+ return got;
+ }
+
+
}