comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java @ 3445:b6c301cb3871

Handle FixationArtifacts in WQAdapted-State. flys-artifacts/trunk@5108 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Mon, 23 Jul 2012 15:11:12 +0000
parents efb2038783f9
children 22790758b132
comparison
equal deleted inserted replaced
3444:f903f1e5aed6 3445:b6c301cb3871
21 import de.intevation.flys.model.Range; 21 import de.intevation.flys.model.Range;
22 import de.intevation.flys.model.River; 22 import de.intevation.flys.model.River;
23 import de.intevation.flys.model.Wst; 23 import de.intevation.flys.model.Wst;
24 24
25 import de.intevation.flys.artifacts.WINFOArtifact; 25 import de.intevation.flys.artifacts.WINFOArtifact;
26 import de.intevation.flys.artifacts.FLYSArtifact;
26 27
27 import de.intevation.flys.artifacts.model.RangeWithValues; 28 import de.intevation.flys.artifacts.model.RangeWithValues;
28 import de.intevation.flys.artifacts.model.WstFactory; 29 import de.intevation.flys.artifacts.model.WstFactory;
29 import de.intevation.flys.utils.FLYSUtils; 30 import de.intevation.flys.utils.FLYSUtils;
30 31
35 public class WQAdapted extends DefaultState { 36 public class WQAdapted extends DefaultState {
36 37
37 /** The logger used in this state.*/ 38 /** The logger used in this state.*/
38 private static Logger logger = Logger.getLogger(WQAdapted.class); 39 private static Logger logger = Logger.getLogger(WQAdapted.class);
39 40
40
41 public static final String FIELD_WQ_MODE = "wq_isq"; 41 public static final String FIELD_WQ_MODE = "wq_isq";
42 42
43 public static final String FIELD_WQ_VALUES = "wq_values"; 43 public static final String FIELD_WQ_VALUES = "wq_values";
44 44
45 public static final class GaugeOrder implements Comparator<Gauge> { 45 public static final class GaugeOrder implements Comparator<Gauge> {
57 public static final GaugeOrder GAUGE_UP = new GaugeOrder(true); 57 public static final GaugeOrder GAUGE_UP = new GaugeOrder(true);
58 public static final GaugeOrder GAUGE_DOWN = new GaugeOrder(false); 58 public static final GaugeOrder GAUGE_DOWN = new GaugeOrder(false);
59 59
60 public WQAdapted() { 60 public WQAdapted() {
61 } 61 }
62
62 63
63 /** 64 /**
64 * This method creates one element for each gauge of the selected river that 65 * This method creates one element for each gauge of the selected river that
65 * is intersected by the given kilometer range. Each element is a tuple of 66 * is intersected by the given kilometer range. Each element is a tuple of
66 * (from;to) where <i>from</i> is the lower bounds of the gauge or the lower 67 * (from;to) where <i>from</i> is the lower bounds of the gauge or the lower
118 String name, 119 String name,
119 CallContext context) 120 CallContext context)
120 { 121 {
121 logger.debug("WQAdapted.createValueItems"); 122 logger.debug("WQAdapted.createValueItems");
122 123
123 WINFOArtifact flysArtifact = (WINFOArtifact) artifact; 124 FLYSArtifact flysArtifact = (FLYSArtifact) artifact;
124 125
125 double[] dist = FLYSUtils.getKmRange(flysArtifact); 126 double[] dist = FLYSUtils.getKmRange(flysArtifact);
126 River river = FLYSUtils.getRiver(flysArtifact); 127 River river = FLYSUtils.getRiver(flysArtifact);
127 Wst wst = WstFactory.getWst(river); 128 Wst wst = WstFactory.getWst(river);
128 List<Gauge> gauges = flysArtifact.getGauges(); 129 List<Gauge> gauges = FLYSUtils.getGauges(flysArtifact);
129 130
130 int num = gauges != null ? gauges.size() : 0; 131 int num = gauges != null ? gauges.size() : 0;
131 132
132 if (num == 0) { 133 if (num == 0) {
133 logger.warn("Selected distance matches no gauges."); 134 logger.warn("Selected distance matches no gauges.");
276 public boolean validate(Artifact artifact) 277 public boolean validate(Artifact artifact)
277 throws IllegalArgumentException 278 throws IllegalArgumentException
278 { 279 {
279 logger.debug("WQAdapted.validate"); 280 logger.debug("WQAdapted.validate");
280 281
281 WINFOArtifact flys = (WINFOArtifact) artifact; 282 FLYSArtifact flys = (FLYSArtifact) artifact;
282 StateData data = getData(flys, FIELD_WQ_MODE); 283 StateData data = getData(flys, FIELD_WQ_MODE);
283 284
284 String mode = data != null ? (String) data.getValue() : null; 285 String mode = data != null ? (String) data.getValue() : null;
285 boolean isQ = mode != null 286 boolean isQ = mode != null
286 ? Boolean.valueOf(mode) 287 ? Boolean.valueOf(mode)
300 301
301 protected boolean validateW(Artifact artifact) 302 protected boolean validateW(Artifact artifact)
302 throws IllegalArgumentException 303 throws IllegalArgumentException
303 { 304 {
304 logger.debug("WQAdapted.validateW"); 305 logger.debug("WQAdapted.validateW");
305 WINFOArtifact flys = (WINFOArtifact) artifact; 306 FLYSArtifact flys = (FLYSArtifact) artifact;
306 307
307 RangeWithValues[] rwvs = extractInput(getData(flys, "wq_values")); 308 RangeWithValues[] rwvs = extractInput(getData(flys, "wq_values"));
308 309
309 if (rwvs == null) { 310 if (rwvs == null) {
310 throw new IllegalArgumentException("error_missing_wq_data"); 311 throw new IllegalArgumentException("error_missing_wq_data");
311 } 312 }
312 313
313 List<Gauge> gauges = ((WINFOArtifact) artifact).getGauges(); 314 List<Gauge> gauges = FLYSUtils.getGauges((FLYSArtifact) artifact);
314 315
315 for (Gauge gauge: gauges) { 316 for (Gauge gauge: gauges) {
316 Range range = gauge.getRange(); 317 Range range = gauge.getRange();
317 double lower = range.getA().doubleValue(); 318 double lower = range.getA().doubleValue();
318 double upper = range.getB().doubleValue(); 319 double upper = range.getB().doubleValue();
330 331
331 protected boolean validateQ(Artifact artifact) 332 protected boolean validateQ(Artifact artifact)
332 throws IllegalArgumentException 333 throws IllegalArgumentException
333 { 334 {
334 logger.debug("WQAdapted.validateQ"); 335 logger.debug("WQAdapted.validateQ");
335 WINFOArtifact flys = (WINFOArtifact) artifact; 336 FLYSArtifact flys = (FLYSArtifact) artifact;
336 337
337 RangeWithValues[] rwvs = extractInput(getData(flys, "wq_values")); 338 RangeWithValues[] rwvs = extractInput(getData(flys, "wq_values"));
338 339
339 if (rwvs == null) { 340 if (rwvs == null) {
340 throw new IllegalArgumentException("error_missing_wq_data"); 341 throw new IllegalArgumentException("error_missing_wq_data");
341 } 342 }
342 343
343 List<Gauge> gauges = flys.getGauges(); 344 List<Gauge> gauges = FLYSUtils.getGauges(flys);
344 River river = FLYSUtils.getRiver(flys); 345 River river = FLYSUtils.getRiver(flys);
345 Wst wst = WstFactory.getWst(river); 346 Wst wst = WstFactory.getWst(river);
346 347
347 for (Gauge gauge: gauges) { 348 for (Gauge gauge: gauges) {
348 Range range = gauge.getRange(); 349 Range range = gauge.getRange();

http://dive4elements.wald.intevation.org