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 :

http://dive4elements.wald.intevation.org