This commit is contained in:
Alessandro Pieve 2016-10-13 16:18:19 +00:00
parent 477110f05b
commit c0ca3f0b63
3 changed files with 76 additions and 7 deletions

View File

@ -0,0 +1,48 @@
package org.gcube.accounting.analytics;
import java.util.List;
public class TotalFilters {
protected List<Filters> totalFilters;
protected Double d;
protected String orderingProperty;
public TotalFilters(){}
public TotalFilters(List<Filters> totalFilters, Number n, String orderingProperty) {
super();
this.totalFilters=totalFilters;
this.d = n.doubleValue();
this.orderingProperty = orderingProperty;
}
public List<Filters> getTotalFilters() {
return totalFilters;
}
public void setTotalFilters(List<Filters> 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 + "]";
}
}

View File

@ -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<Filters> filterPackageQuota) throws Exception;
/**
*
* @param clz
* @param temporalConstraint
* @param listUsage
* @return
* @throws Exception
*/
public List<TotalFilters> getUsageValueQuotaTotal(
Class<? extends AggregatedRecord<?, ?>> clz,
TemporalConstraint temporalConstraint, List<TotalFilters> listUsage)
throws Exception;

View File

@ -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<Filters> listUsage)
throws Exception {
// TODO Auto-generated method stub
return null;
return AccountingPersistenceBackendQueryFactory.getInstance()
.getUsageValueQuota(clz, temporalConstraint, listUsage);
}
@Override
public List<TotalFilters> getUsageValueQuotaTotal(Class<? extends AggregatedRecord<?, ?>> clz,
TemporalConstraint temporalConstraint, List<TotalFilters> listUsage)
throws Exception {
// TODO Auto-generated method stub
return AccountingPersistenceBackendQueryFactory.getInstance()
.getUsageValueQuotaTotal(clz, temporalConstraint, listUsage);
}
}