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 &lt;w,q,timerange&gt; 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 :

http://dive4elements.wald.intevation.org