Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/HistoricalWQTimerange.java @ 4183:1755a1bfe5ce
Merged
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Fri, 19 Oct 2012 09:20:52 +0200 |
parents | b8df8d1476ba |
children | 79878efbdf07 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/HistoricalWQTimerange.java Tue Oct 16 12:44:15 2012 +0200 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/HistoricalWQTimerange.java Fri Oct 19 09:20:52 2012 +0200 @@ -2,6 +2,10 @@ import gnu.trove.TDoubleArrayList; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + /** * A subclass of WQTimerange that stores besides W, Q and Timerange values @@ -11,6 +15,28 @@ */ public class HistoricalWQTimerange extends WQTimerange { + public static class HistoricalTimerangeItem extends TimerangeItem { + public double diff; + + public HistoricalTimerangeItem (Timerange timerange, double q, double w, double diff) { + super(timerange, q, w); + this.diff = diff; + } + + public double[] get(double[] wq) { + if (wq.length >= 3) { + wq[0] = w; + wq[1] = q; + wq[2] = diff; + } + else if (wq.length >= 2) { + return super.get(wq); + } + + return wq; + } + } + protected TDoubleArrayList diffs; @@ -45,5 +71,16 @@ public double[] getDiffs() { return diffs.toNativeArray(); } + + @Override + public List<TimerangeItem> sort() { + ArrayList<TimerangeItem> items = new ArrayList<TimerangeItem>(ts.size()); + for (int i = 0, n = size(); i < n; i++) { + items.add(new HistoricalTimerangeItem(getTimerange(i), getQ(i), getW(i), diffs.get(i))); + } + + Collections.sort(items); + return items; + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :