annotate artifacts/src/main/java/org/dive4elements/river/artifacts/states/WQFixing.java @ 6693:88bb0c794833

issue1391: Enable GaugeDischarge artifact to directly load a table by its ID This allows us to use the GaugeDischargeArtifact for any discharge tables that we have in our database. The name of the created facet is taken from the ids string as is also usual in the WMS artifacts.
author Andre Heinecke <aheinecke@intevation.de>
date Mon, 29 Jul 2013 12:19:57 +0200
parents 1a169e10c0f3
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