annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/WQFixing.java @ 6062:1a169e10c0f3 3.0.5

Add WQFixing sanity check. Just ensure that values are > 0
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 22 May 2013 18:32:51 +0200
parents 0a200ba54461
children e4606eae8ea5
rev   line source
6060
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
3 *
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
7 */
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
8 package org.dive4elements.river.artifacts.states;
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
9
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
10 import org.dive4elements.artifacts.Artifact;
6062
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
11 import org.dive4elements.river.artifacts.D4EArtifact;
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
12 import org.dive4elements.river.artifacts.model.RangeWithValues;
6060
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
13
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
14 import org.apache.log4j.Logger;
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
15
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
16 /**
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
17 * State to input W/Q data for fixings
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
18 * @author <a href="mailto:aheinecke@intevation.de">Andre Heinecke</a>
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
19 */
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
20 public class WQFixing extends WQAdapted {
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
21
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
22 /** The logger used in this state.*/
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
23 private static Logger logger = Logger.getLogger(WQFixing.class);
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
24
6062
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
25 /** Simple sanity check if values are positive numbers **/
6060
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
26 @Override
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
27 public boolean validate(Artifact artifact)
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
28 throws IllegalArgumentException
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
29 {
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
30 logger.debug("WQFixing.validate");
6062
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
31
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
32 RangeWithValues[] rwvs = extractInput(getData((D4EArtifact) artifact, "wq_values"));
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
33
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
34 if (rwvs == null) {
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
35 throw new IllegalArgumentException("error_missing_wq_data");
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
36 }
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
37
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
38 for (RangeWithValues rwv: rwvs) {
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
39 double[] values = rwv.getValues();
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
40 for (double val: values) {
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
41 if (val <= 0) {
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
42 throw new IllegalArgumentException("error_validate_positive");
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
43 }
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
44 }
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
45 }
1a169e10c0f3 Add WQFixing sanity check.
Andre Heinecke <aheinecke@intevation.de>
parents: 6060
diff changeset
46
6060
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
47 return true;
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
48 }
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
49
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
50 @Override
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
51 protected String getUIProvider() {
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
52 return "wq_panel_adapted_fixing";
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
53 }
0a200ba54461 Fix WQ input validation for fixing analysis
Andre Heinecke <aheinecke@intevation.de>
parents:
diff changeset
54 }

http://dive4elements.wald.intevation.org