Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/WQTimerange.java @ 5831:bd047b71ab37
Repaired internal references
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 12:06:39 +0200 |
parents | flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WQTimerange.java@61f4d4164a30 |
children |
comparison
equal
deleted
inserted
replaced
5830:160f53ee0870 | 5831:bd047b71ab37 |
---|---|
1 package org.dive4elements.river.artifacts.model; | |
2 | |
3 import java.util.ArrayList; | |
4 import java.util.Collections; | |
5 import java.util.List; | |
6 | |
7 | |
8 /** | |
9 * A collection of triples W,Q,Timerange. | |
10 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | |
11 */ | |
12 public class WQTimerange extends WQ { | |
13 | |
14 /** Used to sort <w,q,timerange> triples. */ | |
15 public static class TimerangeItem implements Comparable<TimerangeItem> { | |
16 public double q; | |
17 public double w; | |
18 public Timerange timerange; | |
19 | |
20 public TimerangeItem (Timerange timerange, double q, double w) { | |
21 this.timerange = timerange; | |
22 this.q = q; | |
23 this.w = w; | |
24 } | |
25 | |
26 /** Sets [w,q] in wq. */ | |
27 public double[] get(double[] wq) { | |
28 if (wq.length >= 2) { | |
29 wq[0] = w; | |
30 wq[1] = q; | |
31 } | |
32 | |
33 return wq; | |
34 } | |
35 | |
36 @Override | |
37 public int compareTo(TimerangeItem other) { | |
38 if (other.timerange.getStart() < timerange.getStart()) { | |
39 return 1; | |
40 } | |
41 else if (other.timerange.getStart() > timerange.getStart()) { | |
42 return -1; | |
43 } | |
44 else if (other.timerange.getEnd() < timerange.getEnd()) { | |
45 return 1; | |
46 } | |
47 else if (other.timerange.getEnd() > timerange.getEnd()){ | |
48 return -1; | |
49 } | |
50 else { | |
51 return 0; | |
52 } | |
53 } | |
54 } | |
55 | |
56 protected List<Timerange> timeranges; | |
57 | |
58 | |
59 public WQTimerange() { | |
60 super(""); | |
61 } | |
62 | |
63 | |
64 public WQTimerange(String name) { | |
65 super(name); | |
66 timeranges = new ArrayList<Timerange>(); | |
67 } | |
68 | |
69 | |
70 public void add(double w, double q, Timerange t) { | |
71 ws.add(w); | |
72 qs.add(q); | |
73 timeranges.add(t); | |
74 } | |
75 | |
76 | |
77 public Timerange getTimerange(int idx) { | |
78 return timeranges.get(idx); | |
79 } | |
80 | |
81 | |
82 public Timerange[] getTimeranges() { | |
83 return timeranges.toArray(new Timerange[timeranges.size()]); | |
84 } | |
85 | |
86 public List<TimerangeItem> sort() { | |
87 ArrayList<TimerangeItem> items = new ArrayList<TimerangeItem>(timeranges.size()); | |
88 for (int i = 0, n = size(); i < n; i++) { | |
89 items.add(new TimerangeItem(getTimerange(i), getQ(i), getW(i))); | |
90 } | |
91 | |
92 Collections.sort(items); | |
93 return items; | |
94 } | |
95 } | |
96 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |