Mercurial > dive4elements > river
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 } |