Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/HistoricalWQTimerange.java @ 5838:5aa05a7a34b7
Rename modules to more fitting names.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 15:23:37 +0200 |
parents | flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/HistoricalWQTimerange.java@bd047b71ab37 |
children | 4897a58c8746 |
comparison
equal
deleted
inserted
replaced
5837:d9901a08d0a6 | 5838:5aa05a7a34b7 |
---|---|
1 package org.dive4elements.river.artifacts.model; | |
2 | |
3 import gnu.trove.TDoubleArrayList; | |
4 | |
5 import java.util.ArrayList; | |
6 import java.util.Collections; | |
7 import java.util.List; | |
8 | |
9 | |
10 /** | |
11 * A subclass of WQTimerange that stores besides W, Q and Timerange values | |
12 * another double value (difference to something). | |
13 * | |
14 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | |
15 */ | |
16 public class HistoricalWQTimerange extends WQTimerange { | |
17 | |
18 public static class HistoricalTimerangeItem extends TimerangeItem { | |
19 public double diff; | |
20 | |
21 public HistoricalTimerangeItem (Timerange timerange, double q, double w, double diff) { | |
22 super(timerange, q, w); | |
23 this.diff = diff; | |
24 } | |
25 | |
26 public double[] get(double[] wq) { | |
27 if (wq.length >= 3) { | |
28 wq[0] = w; | |
29 wq[1] = q; | |
30 wq[2] = diff; | |
31 } | |
32 else if (wq.length >= 2) { | |
33 return super.get(wq); | |
34 } | |
35 | |
36 return wq; | |
37 } | |
38 } | |
39 | |
40 protected TDoubleArrayList diffs; | |
41 | |
42 | |
43 public HistoricalWQTimerange(String name) { | |
44 super(name); | |
45 | |
46 diffs = new TDoubleArrayList(); | |
47 } | |
48 | |
49 | |
50 public void add(double w, double q, double diff, Timerange t) { | |
51 ws.add(w); | |
52 qs.add(q); | |
53 timeranges.add(t); | |
54 diffs.add(diff); | |
55 } | |
56 | |
57 | |
58 /** | |
59 * This method requires a 3dim double array for <i>res</i>! | |
60 */ | |
61 @Override | |
62 public double[] get(int idx, double[] res) { | |
63 res[0] = ws.getQuick(idx); | |
64 res[1] = qs.getQuick(idx); | |
65 res[2] = diffs.getQuick(idx); | |
66 | |
67 return res; | |
68 } | |
69 | |
70 | |
71 public double[] getDiffs() { | |
72 return diffs.toNativeArray(); | |
73 } | |
74 | |
75 @Override | |
76 public List<TimerangeItem> sort() { | |
77 ArrayList<TimerangeItem> items = new ArrayList<TimerangeItem>(timeranges.size()); | |
78 for (int i = 0, n = size(); i < n; i++) { | |
79 items.add(new HistoricalTimerangeItem(getTimerange(i), getQ(i), getW(i), diffs.get(i))); | |
80 } | |
81 | |
82 Collections.sort(items); | |
83 return items; | |
84 } | |
85 } | |
86 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |