annotate artifacts/src/main/java/org/dive4elements/river/artifacts/access/Access.java @ 8755:30b1ddadf275

(issue1801) Unify reference gauge finding code The basic way as described in the method comment of the determineRefGauge method is now used in the WINFOArtifact, MainValuesService and RiverUtils.getGauge method. RiverUtils.getGauge previously just returned the first gauge found. While this is now a behavior change I believe that it is always more correct then the undeterministic behavior of the previous implmenentation.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 24 Jun 2015 14:07:26 +0200
parents af13ceeba52a
children 5e38e2924c07
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5867
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5867
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4528
diff changeset
9 package org.dive4elements.river.artifacts.access;
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4528
diff changeset
11 import org.dive4elements.artifactdatabase.data.StateData;
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
13 import org.dive4elements.river.artifacts.D4EArtifact;
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4528
diff changeset
15 import org.dive4elements.river.artifacts.model.DateRange;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4528
diff changeset
16
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
17 import org.dive4elements.river.utils.RiverUtils;
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 import gnu.trove.TDoubleArrayList;
4152
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
20 import gnu.trove.TLongArrayList;
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 import java.util.ArrayList;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 import java.util.Date;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 import org.apache.log4j.Logger;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26
3209
03fc05655258 SQ: Added artifact access stub.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3208
diff changeset
27 public class Access
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 private static Logger log = Logger.getLogger(Access.class);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
31 protected D4EArtifact artifact;
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 public Access() {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
36 public Access(D4EArtifact artifact) {
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37 this.artifact = artifact;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
40 public D4EArtifact getArtifact() {
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 return artifact;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
44 public void setArtifact(D4EArtifact artifact) {
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45 this.artifact = artifact;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
47
4528
cbd0fafcb26b Documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4152
diff changeset
48
cbd0fafcb26b Documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4152
diff changeset
49 /** Get a data entry as string. */
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 protected String getString(String key) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51 StateData sd = artifact.getData(key);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
52 if (sd == null) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
53 log.warn("missing '" + key + "' value");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
54 return null;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
55 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
56 return (String)sd.getValue();
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
57 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
58
4528
cbd0fafcb26b Documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4152
diff changeset
59 /** Get a data entry as double, returns null if string not double valueoffable. */
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60 protected Double getDouble(String key) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
61 StateData sd = artifact.getData(key);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
62 if (sd == null) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
63 log.warn("missing '" + key + "' value");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
64 return null;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
65 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
66 try {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
67 return Double.valueOf((String)sd.getValue());
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
68 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
69 catch (NumberFormatException nfe) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
70 log.warn(key + " '" + sd.getValue() + "' is not numeric.");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
71 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
72 return null;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
73 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
74
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
75 protected Long getLong(String key) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
76 StateData sd = artifact.getData(key);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
77 if (sd == null) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
78 log.warn("missing '" + key + "' value");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
79 return null;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
80 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
81 try {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
82 return Long.valueOf((String)sd.getValue());
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
83 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
84 catch (NumberFormatException nfe) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
85 log.warn(key + " '" + sd.getValue() + "' is not a long integer.");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
86 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
87 return null;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
88 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
89
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
90 protected Integer getInteger(String key) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
91 StateData sd = artifact.getData(key);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
92 if (sd == null) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
93 log.warn("missing '" + key + "' value");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94 return null;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
95 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
96 try {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
97 return Integer.valueOf((String)sd.getValue());
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
98 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
99 catch (NumberFormatException nfe) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
100 log.warn(key + " '" + sd.getValue() + "' is not a integer.");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
101 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
102 return null;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
103 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
104
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
105 protected int [] getIntArray(String key) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
106 StateData sd = artifact.getData(key);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
107 if (sd == null) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
108 log.warn("missing '" + key +"' value");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
109 return null;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
110 }
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
111 return RiverUtils.intArrayFromString((String)sd.getValue());
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
112 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
113
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
114 protected DateRange [] getDateRange(String key) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
115
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
116 StateData sd = artifact.getData(key);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
117
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
118 if (sd == null) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
119 log.warn("missing '" + key + "'");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
120 return null;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
121 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
122
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
123 String data = (String)sd.getValue();
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
124 String[] pairs = data.split("\\s*;\\s*");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
125
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
126 ArrayList<DateRange> aPs = new ArrayList<DateRange>(pairs.length);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
127
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
128 for (int i = 0; i < pairs.length; i++) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
129 String[] fromTo = pairs[i].split("\\s*,\\s*");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
130 if (fromTo.length >= 2) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
131 try {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
132 Date from = new Date(Long.parseLong(fromTo[0]));
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
133 Date to = new Date(Long.parseLong(fromTo[1]));
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
134 DateRange aP = new DateRange(from, to);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
135 if (!aPs.contains(aP)) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
136 aPs.add(aP);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
137 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
138 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
139 catch (NumberFormatException nfe) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
140 log.warn(key + " contains no long values.", nfe);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
141 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
142 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
143 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
144
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
145 DateRange [] result = aPs.toArray(new DateRange[aPs.size()]);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
146
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
147 if (log.isDebugEnabled()) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
148 for (int i = 0; i < result.length; ++i) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
149 DateRange ap = result[i];
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
150 log.debug("period " +
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
151 ap.getFrom() + " - " + ap.getTo());
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
152 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
153 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
154
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
155 return result;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
156 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
157
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
158 protected Boolean getBoolean(String key) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
159 StateData sd = artifact.getData(key);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
160 if (sd == null) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
161 log.warn("missing '" + key + "' value");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
162 return null;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
163 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
164 return Boolean.valueOf((String)sd.getValue());
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
165 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
166
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
167 protected double [] getDoubleArray(String key) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
168 StateData sd = artifact.getData(key);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
169 if (sd == null) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
170 log.warn("missing '" + key + "'");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
171 return null;
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
172 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
173 String [] parts = ((String)sd.getValue()).split("[\\s;]+");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
174 TDoubleArrayList list = new TDoubleArrayList(parts.length);
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
175 for (String part: parts) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
176 try {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
177 list.add(Double.parseDouble(part));
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
178 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
179 catch (NumberFormatException nfe) {
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
180 log.warn("'" + part + "' is not numeric.");
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
181 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
182 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
183 return list.toNativeArray();
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
184 }
4152
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
185
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
186 protected long [] getLongArray(String key) {
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
187 StateData sd = artifact.getData(key);
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
188 if (sd == null) {
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
189 log.warn("missing '" + key + "'");
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
190 return null;
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
191 }
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
192 String [] parts = ((String)sd.getValue()).split("[\\s;]+");
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
193 TLongArrayList list = new TLongArrayList(parts.length);
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
194 for (String part: parts) {
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
195 try {
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
196 list.add(Long.parseLong(part));
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
197 }
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
198 catch (NumberFormatException nfe) {
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
199 log.warn("'" + part + "' is not numeric.");
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
200 }
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
201 }
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
202 return list.toNativeArray();
5ff3b2f5fb1c Added evaluation timerange to subtitle of historical discharge curve charts.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3259
diff changeset
203 }
3208
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
204 }
90c4ce100ce1 Added new base class for *Access
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
205 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org