Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/org/dive4elements/river/artifacts/access/Access.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/access/Access.java@cbd0fafcb26b |
children |
comparison
equal
deleted
inserted
replaced
5830:160f53ee0870 | 5831:bd047b71ab37 |
---|---|
1 package org.dive4elements.river.artifacts.access; | |
2 | |
3 import org.dive4elements.artifactdatabase.data.StateData; | |
4 | |
5 import org.dive4elements.river.artifacts.FLYSArtifact; | |
6 | |
7 import org.dive4elements.river.artifacts.model.DateRange; | |
8 | |
9 import org.dive4elements.river.utils.FLYSUtils; | |
10 | |
11 import gnu.trove.TDoubleArrayList; | |
12 import gnu.trove.TLongArrayList; | |
13 | |
14 import java.util.ArrayList; | |
15 import java.util.Date; | |
16 | |
17 import org.apache.log4j.Logger; | |
18 | |
19 public class Access | |
20 { | |
21 private static Logger log = Logger.getLogger(Access.class); | |
22 | |
23 protected FLYSArtifact artifact; | |
24 | |
25 public Access() { | |
26 } | |
27 | |
28 public Access(FLYSArtifact artifact) { | |
29 this.artifact = artifact; | |
30 } | |
31 | |
32 public FLYSArtifact getArtifact() { | |
33 return artifact; | |
34 } | |
35 | |
36 public void setArtifact(FLYSArtifact artifact) { | |
37 this.artifact = artifact; | |
38 } | |
39 | |
40 | |
41 /** Get a data entry as string. */ | |
42 protected String getString(String key) { | |
43 StateData sd = artifact.getData(key); | |
44 if (sd == null) { | |
45 log.warn("missing '" + key + "' value"); | |
46 return null; | |
47 } | |
48 return (String)sd.getValue(); | |
49 } | |
50 | |
51 /** Get a data entry as double, returns null if string not double valueoffable. */ | |
52 protected Double getDouble(String key) { | |
53 StateData sd = artifact.getData(key); | |
54 if (sd == null) { | |
55 log.warn("missing '" + key + "' value"); | |
56 return null; | |
57 } | |
58 try { | |
59 return Double.valueOf((String)sd.getValue()); | |
60 } | |
61 catch (NumberFormatException nfe) { | |
62 log.warn(key + " '" + sd.getValue() + "' is not numeric."); | |
63 } | |
64 return null; | |
65 } | |
66 | |
67 protected Long getLong(String key) { | |
68 StateData sd = artifact.getData(key); | |
69 if (sd == null) { | |
70 log.warn("missing '" + key + "' value"); | |
71 return null; | |
72 } | |
73 try { | |
74 return Long.valueOf((String)sd.getValue()); | |
75 } | |
76 catch (NumberFormatException nfe) { | |
77 log.warn(key + " '" + sd.getValue() + "' is not a long integer."); | |
78 } | |
79 return null; | |
80 } | |
81 | |
82 protected Integer getInteger(String key) { | |
83 StateData sd = artifact.getData(key); | |
84 if (sd == null) { | |
85 log.warn("missing '" + key + "' value"); | |
86 return null; | |
87 } | |
88 try { | |
89 return Integer.valueOf((String)sd.getValue()); | |
90 } | |
91 catch (NumberFormatException nfe) { | |
92 log.warn(key + " '" + sd.getValue() + "' is not a integer."); | |
93 } | |
94 return null; | |
95 } | |
96 | |
97 protected int [] getIntArray(String key) { | |
98 StateData sd = artifact.getData(key); | |
99 if (sd == null) { | |
100 log.warn("missing '" + key +"' value"); | |
101 return null; | |
102 } | |
103 return FLYSUtils.intArrayFromString((String)sd.getValue()); | |
104 } | |
105 | |
106 protected DateRange [] getDateRange(String key) { | |
107 | |
108 StateData sd = artifact.getData(key); | |
109 | |
110 if (sd == null) { | |
111 log.warn("missing '" + key + "'"); | |
112 return null; | |
113 } | |
114 | |
115 String data = (String)sd.getValue(); | |
116 String[] pairs = data.split("\\s*;\\s*"); | |
117 | |
118 ArrayList<DateRange> aPs = new ArrayList<DateRange>(pairs.length); | |
119 | |
120 for (int i = 0; i < pairs.length; i++) { | |
121 String[] fromTo = pairs[i].split("\\s*,\\s*"); | |
122 if (fromTo.length >= 2) { | |
123 try { | |
124 Date from = new Date(Long.parseLong(fromTo[0])); | |
125 Date to = new Date(Long.parseLong(fromTo[1])); | |
126 DateRange aP = new DateRange(from, to); | |
127 if (!aPs.contains(aP)) { | |
128 aPs.add(aP); | |
129 } | |
130 } | |
131 catch (NumberFormatException nfe) { | |
132 log.warn(key + " contains no long values.", nfe); | |
133 } | |
134 } | |
135 } | |
136 | |
137 DateRange [] result = aPs.toArray(new DateRange[aPs.size()]); | |
138 | |
139 if (log.isDebugEnabled()) { | |
140 for (int i = 0; i < result.length; ++i) { | |
141 DateRange ap = result[i]; | |
142 log.debug("period " + | |
143 ap.getFrom() + " - " + ap.getTo()); | |
144 } | |
145 } | |
146 | |
147 return result; | |
148 } | |
149 | |
150 protected Boolean getBoolean(String key) { | |
151 StateData sd = artifact.getData(key); | |
152 if (sd == null) { | |
153 log.warn("missing '" + key + "' value"); | |
154 return null; | |
155 } | |
156 return Boolean.valueOf((String)sd.getValue()); | |
157 } | |
158 | |
159 protected double [] getDoubleArray(String key) { | |
160 StateData sd = artifact.getData(key); | |
161 if (sd == null) { | |
162 log.warn("missing '" + key + "'"); | |
163 return null; | |
164 } | |
165 String [] parts = ((String)sd.getValue()).split("[\\s;]+"); | |
166 TDoubleArrayList list = new TDoubleArrayList(parts.length); | |
167 for (String part: parts) { | |
168 try { | |
169 list.add(Double.parseDouble(part)); | |
170 } | |
171 catch (NumberFormatException nfe) { | |
172 log.warn("'" + part + "' is not numeric."); | |
173 } | |
174 } | |
175 return list.toNativeArray(); | |
176 } | |
177 | |
178 protected long [] getLongArray(String key) { | |
179 StateData sd = artifact.getData(key); | |
180 if (sd == null) { | |
181 log.warn("missing '" + key + "'"); | |
182 return null; | |
183 } | |
184 String [] parts = ((String)sd.getValue()).split("[\\s;]+"); | |
185 TLongArrayList list = new TLongArrayList(parts.length); | |
186 for (String part: parts) { | |
187 try { | |
188 list.add(Long.parseLong(part)); | |
189 } | |
190 catch (NumberFormatException nfe) { | |
191 log.warn("'" + part + "' is not numeric."); | |
192 } | |
193 } | |
194 return list.toNativeArray(); | |
195 } | |
196 } | |
197 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |