Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java @ 624:929137ee8154
ISSUE-62 (part I/II) States are no longer filled with data - if a state needs user input, it needs to query the owner artifact.
flys-artifacts/trunk@1982 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 23 May 2011 15:11:55 +0000 |
parents | e54053bc0e70 |
children | 58276db49b16 |
comparison
equal
deleted
inserted
replaced
623:aa64fe4df8ab | 624:929137ee8154 |
---|---|
1 package de.intevation.flys.artifacts.states; | 1 package de.intevation.flys.artifacts.states; |
2 | 2 |
3 import java.util.ArrayList; | 3 import java.util.ArrayList; |
4 import java.util.List; | 4 import java.util.List; |
5 import java.util.Map; | |
6 | 5 |
7 import org.apache.log4j.Logger; | 6 import org.apache.log4j.Logger; |
8 | 7 |
9 import org.w3c.dom.Element; | 8 import org.w3c.dom.Element; |
10 | 9 |
158 public boolean validate(Artifact artifact, CallContext context) | 157 public boolean validate(Artifact artifact, CallContext context) |
159 throws IllegalArgumentException | 158 throws IllegalArgumentException |
160 { | 159 { |
161 logger.debug("WQAdapted.validate"); | 160 logger.debug("WQAdapted.validate"); |
162 | 161 |
163 Map<String, StateData> data = getData(); | 162 FLYSArtifact flys = (FLYSArtifact) artifact; |
164 | 163 StateData data = getData(flys, FIELD_WQ_MODE); |
165 String mode = (String) data.get(FIELD_WQ_MODE).getValue(); | 164 |
165 String mode = data != null ? (String) data.getValue() : null; | |
166 | 166 |
167 if (mode != null && mode.equals("W")) { | 167 if (mode != null && mode.equals("W")) { |
168 return validateW(artifact, context); | 168 return validateW(artifact, context); |
169 } | 169 } |
170 else if (mode != null && mode.equals("Q")) { | 170 else if (mode != null && mode.equals("Q")) { |
178 | 178 |
179 protected boolean validateW(Artifact artifact, CallContext context) | 179 protected boolean validateW(Artifact artifact, CallContext context) |
180 throws IllegalArgumentException | 180 throws IllegalArgumentException |
181 { | 181 { |
182 logger.debug("WQAdapted.validateW"); | 182 logger.debug("WQAdapted.validateW"); |
183 | 183 FLYSArtifact flys = (FLYSArtifact) artifact; |
184 RangeWithValues[] rwvs = extractInput(getData("wq_values")); | 184 |
185 RangeWithValues[] rwvs = extractInput(getData(flys, "wq_values")); | |
186 | |
187 if (rwvs == null) { | |
188 throw new IllegalArgumentException("error_missing_wq_data"); | |
189 } | |
190 | |
185 List<Gauge> gauges = ((FLYSArtifact) artifact).getGauges(); | 191 List<Gauge> gauges = ((FLYSArtifact) artifact).getGauges(); |
186 | 192 |
187 for (Gauge gauge: gauges) { | 193 for (Gauge gauge: gauges) { |
188 Range range = gauge.getRange(); | 194 Range range = gauge.getRange(); |
189 double lower = range.getA().doubleValue(); | 195 double lower = range.getA().doubleValue(); |
202 | 208 |
203 protected boolean validateQ(Artifact artifact, CallContext context) | 209 protected boolean validateQ(Artifact artifact, CallContext context) |
204 throws IllegalArgumentException | 210 throws IllegalArgumentException |
205 { | 211 { |
206 logger.debug("WQAdapted.validateQ"); | 212 logger.debug("WQAdapted.validateQ"); |
207 | 213 FLYSArtifact flys = (FLYSArtifact) artifact; |
208 RangeWithValues[] rwvs = extractInput(getData("wq_values")); | 214 |
215 RangeWithValues[] rwvs = extractInput(getData(flys, "wq_values")); | |
216 | |
217 if (rwvs == null) { | |
218 throw new IllegalArgumentException("error_missing_wq_data"); | |
219 } | |
220 | |
209 List<Gauge> gauges = ((FLYSArtifact) artifact).getGauges(); | 221 List<Gauge> gauges = ((FLYSArtifact) artifact).getGauges(); |
210 River river = ((FLYSArtifact) artifact).getRiver(); | 222 River river = ((FLYSArtifact) artifact).getRiver(); |
211 Wst wst = WstFactory.getWst(river); | 223 Wst wst = WstFactory.getWst(river); |
212 | 224 |
213 for (Gauge gauge: gauges) { | 225 for (Gauge gauge: gauges) { |
285 return true; | 297 return true; |
286 } | 298 } |
287 | 299 |
288 | 300 |
289 protected RangeWithValues[] extractInput(StateData data) { | 301 protected RangeWithValues[] extractInput(StateData data) { |
302 if (data == null) { | |
303 return null; | |
304 } | |
305 | |
290 String dataString = (String) data.getValue(); | 306 String dataString = (String) data.getValue(); |
291 String[] ranges = dataString.split(":"); | 307 String[] ranges = dataString.split(":"); |
292 | 308 |
293 List<RangeWithValues> rwv = new ArrayList<RangeWithValues>(); | 309 List<RangeWithValues> rwv = new ArrayList<RangeWithValues>(); |
294 | 310 |