Mercurial > dive4elements > river
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 : |