From 2210ea799f01518b33c3d5fe28d8d3b3fa58e153 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Wed, 16 Mar 2016 14:12:05 +0000 Subject: [PATCH] git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-analytics@125453 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../accounting/analytics/NumberedFilter.java | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 src/main/java/org/gcube/accounting/analytics/NumberedFilter.java diff --git a/src/main/java/org/gcube/accounting/analytics/NumberedFilter.java b/src/main/java/org/gcube/accounting/analytics/NumberedFilter.java new file mode 100644 index 0000000..acabc52 --- /dev/null +++ b/src/main/java/org/gcube/accounting/analytics/NumberedFilter.java @@ -0,0 +1,97 @@ +/** + * + */ +package org.gcube.accounting.analytics; + +import java.util.Calendar; +import java.util.Map; + +import org.json.JSONException; +import org.json.JSONObject; + +/** + * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ + * + */ +public class NumberedFilter extends Filter { + + protected Double d; + + public NumberedFilter(String key, String value, Number n) { + super(key, value); + this.d = n.doubleValue(); + } + + public NumberedFilter(Filter filter, Number n) { + this(filter.key, filter.value, n); + } + + public NumberedFilter(Filter filter, Map timeSeries, String orderingProperty) throws JSONException { + super(filter.key, filter.value); + + for(Info info : timeSeries.values()){ + JSONObject value = info.getValue(); + + if(d == null){ + d = value.getDouble(orderingProperty); + }else{ + d = d + value.getDouble(orderingProperty); + } + } + + } + + /** + * @return the number + */ + public Number getNumber() { + return d; + } + + /** + * @param number the number to set + */ + public void setNumber(Number n) { + this.d = n.doubleValue(); + } + + /** {@inheritDoc} */ + public int compareTo(NumberedFilter numberedFilter) { + int compareResult = this.d.compareTo(numberedFilter.d); + if(compareResult==0){ + super.compareTo(numberedFilter); + } + return compareResult; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = super.hashCode(); + result = prime * result + ((d == null) ? 0 : d.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (!super.equals(obj)) { + return false; + } + if (!(obj instanceof NumberedFilter)) { + return false; + } + NumberedFilter other = (NumberedFilter) obj; + if (d == null) { + if (other.d != null) { + return false; + } + } else if (!d.equals(other.d)) { + return false; + } + return true; + } + +}