comparison flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/WQKms.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/WQKms.java@bcf25d8c183e
children
comparison
equal deleted inserted replaced
5830:160f53ee0870 5831:bd047b71ab37
1 package org.dive4elements.river.artifacts.model;
2
3 import org.dive4elements.river.utils.DoubleUtil;
4
5 import gnu.trove.TDoubleArrayList;
6
7 import org.apache.log4j.Logger;
8
9
10 /**
11 * This class represents a pool of data triples that consists of 'W', 'Q' and
12 * 'KM' data.
13 *
14 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
15 */
16 public class WQKms
17 extends WQ
18 implements WKms, QKms
19 {
20 private static Logger logger = Logger.getLogger(WQKms.class);
21
22 /** The array that contains the 'KMs' values. */
23 protected TDoubleArrayList kms;
24
25
26 public WQKms() {
27 this("");
28 }
29
30
31 public WQKms(String name) {
32 super(name);
33 this.kms = new TDoubleArrayList();
34 }
35
36
37 public WQKms(int capacity) {
38 this(capacity, "");
39 }
40
41
42 public WQKms(int capacity, String name) {
43 super(capacity, name);
44 this.kms = new TDoubleArrayList(capacity);
45 }
46
47 public WQKms(double [] kms, double [] qs, double [] ws) {
48 this(kms, qs, ws, "");
49 }
50
51
52 public WQKms(double [] kms, double [] qs, double [] ws, String name) {
53 super(qs, ws, name);
54 this.kms = new TDoubleArrayList(kms);
55 }
56
57 @Override
58 public void removeNaNs() {
59 DoubleUtil.removeNaNs(new TDoubleArrayList [] { ws, qs, kms });
60 }
61
62 /**
63 * Adds a new row to this data pool.
64 *
65 * @param w a W.
66 * @param q a Q.
67 * @param km a kms.
68 */
69 public void add(double w, double q, double km) {
70 super.add(w, q);
71 kms.add(km);
72 }
73
74 @Override
75 public double [] get(int idx) {
76 return get(idx, new double [3]);
77 }
78
79 /**
80 * This method returns a triple of W, Q and Kms in a single 3dim array.
81 *
82 * @param idx The position of the triple.
83 * @param dst destination array
84 *
85 * @return a triple of [W, Q, Kms] in dst.
86 */
87 @Override
88 public double [] get(int idx, double [] dst) {
89 dst[0] = ws .getQuick(idx);
90 dst[1] = qs .getQuick(idx);
91 dst[2] = kms.getQuick(idx);
92 return dst;
93 }
94
95 @Override
96 public double getKm(int idx) {
97 return kms.getQuick(idx);
98 }
99
100 @Override
101 public TDoubleArrayList allKms() {
102 return kms;
103 }
104
105 @Override
106 public TDoubleArrayList allWs() {
107 return ws;
108 }
109
110 @Override
111 public TDoubleArrayList allQs() {
112 return qs;
113 }
114
115 public double[] getKms() {
116 return kms.toNativeArray();
117 }
118
119 /**
120 * Returns a string that consist of the first and last kilometer.
121 *
122 * @return a string that consist of the first and last kilometer.
123 */
124 public String toString() {
125 double from = getKm(0);
126 double to = getKm(size()-1);
127 return from + " - " + to;
128 }
129 }
130 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org