annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java @ 732:39d191f011dc

ATWriter: Results are now in cm. Made it more robust against corner cases. flys-artifacts/trunk@2224 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 23 Jun 2011 21:44:24 +0000
parents 90ee95945684
children eccf966fb677
rev   line source
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts.states;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
3 import java.util.ArrayList;
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 import java.util.List;
636
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
5 import java.util.Comparator;
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
6 import java.util.Collections;
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 import org.apache.log4j.Logger;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import org.w3c.dom.Element;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import de.intevation.artifacts.Artifact;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import de.intevation.artifacts.CallContext;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import de.intevation.artifactdatabase.ProtocolUtils;
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
16 import de.intevation.artifactdatabase.data.StateData;
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import de.intevation.artifacts.common.utils.XMLUtils;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import de.intevation.flys.model.Gauge;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.model.Range;
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
22 import de.intevation.flys.model.River;
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
23 import de.intevation.flys.model.Wst;
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 import de.intevation.flys.artifacts.FLYSArtifact;
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
26 import de.intevation.flys.artifacts.model.RangeWithValues;
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
27 import de.intevation.flys.artifacts.model.WstFactory;
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 /**
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 */
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 public class WQAdapted extends DefaultState {
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 /** The logger used in this state.*/
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 private static Logger logger = Logger.getLogger(WQAdapted.class);
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38
401
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
39 public static final String FIELD_WQ_MODE = "wq_mode";
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
40
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
41 public static final String FIELD_WQ_VALUES = "wq_values";
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
42
636
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
43 public static final class GaugeOrder implements Comparator<Gauge> {
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
44 private int order;
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
45
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
46 public GaugeOrder(boolean up) {
642
2dbbb5be30a1 Re-eanbled the calculation of the backjump correction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 636
diff changeset
47 order = up ? 1 : -1;
636
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
48 }
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
49
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
50 public int compare(Gauge a, Gauge b) {
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
51 return order * a.getRange().getA().compareTo(b.getRange().getA());
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
52 }
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
53 } // class GaugeOrder
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
54
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
55 public static final GaugeOrder GAUGE_UP = new GaugeOrder(true);
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
56 public static final GaugeOrder GAUGE_DOWN = new GaugeOrder(false);
401
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
57
660
627be3ca1ab6 code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 642
diff changeset
58 public WQAdapted() {
627be3ca1ab6 code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 642
diff changeset
59 }
627be3ca1ab6 code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 642
diff changeset
60
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 /**
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 * This method creates one element for each gauge of the selected river that
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 * is intersected by the given kilometer range. Each element is a tuple of
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 * (from;to) where <i>from</i> is the lower bounds of the gauge or the lower
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 * kilometer range. <i>to</i> is the upper bounds of the gauge or the upper
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 * kilometer range.
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 *
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 * @param cr The ElementCreator.
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 * @param artifact The FLYS artifact.
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 * @param name The name of the data item.
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 * @param context The CallContext.
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 *
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 * @return a list of elements that consist of tuples of the intersected
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 * gauges of the selected river.
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 */
660
627be3ca1ab6 code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 642
diff changeset
76 @Override
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 protected Element[] createItems(
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 XMLUtils.ElementCreator cr,
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 Artifact artifact,
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 String name,
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 CallContext context)
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 {
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 logger.debug("WQAdapted.createItems");
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84
401
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
85 if (name != null && name.equals(FIELD_WQ_MODE)) {
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
86 return createModeItems(cr, artifact, name, context);
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
87 }
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
88 else if (name != null && name.equals(FIELD_WQ_VALUES)) {
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
89 return createValueItems(cr, artifact, name, context);
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
90 }
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
91 else {
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
92 logger.warn("Unknown data object: " + name);
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
93 return null;
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
94 }
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
95 }
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
96
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
97
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
98 protected Element[] createModeItems(
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
99 XMLUtils.ElementCreator cr,
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
100 Artifact artifact,
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
101 String name,
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
102 CallContext context)
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
103 {
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
104 logger.debug("WQAdapted.createModeItems");
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
105
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
106 Element w = createItem(cr, new String[] { "w", "W" });
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
107 Element q = createItem(cr, new String[] { "q", "Q" });
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
108
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
109 return new Element[] { w, q };
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
110 }
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
111
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
112
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
113 protected Element[] createValueItems(
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
114 XMLUtils.ElementCreator cr,
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
115 Artifact artifact,
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
116 String name,
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
117 CallContext context)
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
118 {
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
119 logger.debug("WQAdapted.createValueItems");
34de11dcf355 Small bugfix in the adapted WQ state and further i18n strings.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 399
diff changeset
120
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 FLYSArtifact flysArtifact = (FLYSArtifact) artifact;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123 double[] dist = flysArtifact.getDistance();
681
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
124 River river = flysArtifact.getRiver();
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
125 Wst wst = WstFactory.getWst(river);
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 List<Gauge> gauges = flysArtifact.getGauges();
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 int num = gauges != null ? gauges.size() : 0;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130 if (num == 0) {
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 logger.warn("Selected distance matches no gauges.");
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132 return null;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 }
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 Element[] elements = new Element[num];
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136
636
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
137 double rangeFrom = dist[0];
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
138 double rangeTo = dist[1];
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
139
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 int idx = 0;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141
636
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
142 if (rangeFrom < rangeTo) {
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
143 Collections.sort(gauges, GAUGE_UP);
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
144 for (Gauge gauge: gauges) {
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
145 Range range = gauge.getRange();
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
146 double lower = range.getA().doubleValue();
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
147 double upper = range.getB().doubleValue();
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148
636
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
149 double from = lower < rangeFrom ? rangeFrom : lower;
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
150 double to = upper > rangeTo ? rangeTo : upper;
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151
681
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
152 double[] mmQ = determineMinMaxQ(gauge, wst);
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
153 double[] mmW = gauge.determineMinMaxW();
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
154
636
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
155 elements[idx++] = createItem(
681
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
156 cr, new String[] { from + ";" + to, ""}, mmQ, mmW);
636
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
157 }
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
158 }
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
159 else {
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
160 Collections.sort(gauges, GAUGE_DOWN);
642
2dbbb5be30a1 Re-eanbled the calculation of the backjump correction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 636
diff changeset
161 rangeFrom = dist[1];
2dbbb5be30a1 Re-eanbled the calculation of the backjump correction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 636
diff changeset
162 rangeTo = dist[0];
636
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
163 for (Gauge gauge: gauges) {
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
164 Range range = gauge.getRange();
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
165 double lower = range.getA().doubleValue();
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
166 double upper = range.getB().doubleValue();
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
167
642
2dbbb5be30a1 Re-eanbled the calculation of the backjump correction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 636
diff changeset
168 double from = lower < rangeFrom ? rangeFrom : lower;
2dbbb5be30a1 Re-eanbled the calculation of the backjump correction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 636
diff changeset
169 double to = upper > rangeTo ? rangeTo : upper;
636
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
170
724
90ee95945684 #164 Create the items for the adapted WQ state with range information for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 681
diff changeset
171 double[] mmQ = determineMinMaxQ(gauge, wst);
90ee95945684 #164 Create the items for the adapted WQ state with range information for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 681
diff changeset
172 double[] mmW = gauge.determineMinMaxW();
90ee95945684 #164 Create the items for the adapted WQ state with range information for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 681
diff changeset
173
636
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
174 elements[idx++] = createItem(
724
90ee95945684 #164 Create the items for the adapted WQ state with range information for W and Q.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 681
diff changeset
175 cr, new String[] { to + ";" + from, ""}, mmQ, mmW);
636
58276db49b16 Generate fields for w/q input depend on flow direction.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
176 }
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
177 }
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
178
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
179 return elements;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
180 }
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
181
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
182
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
183 protected Element createItem(XMLUtils.ElementCreator cr, Object obj) {
681
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
184 return createItem(cr, obj, null, null);
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
185 }
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
186
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
187
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
188 protected Element createItem(
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
189 XMLUtils.ElementCreator cr,
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
190 Object obj,
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
191 double[] q,
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
192 double[] w)
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
193 {
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
194 Element item = ProtocolUtils.createArtNode(cr, "item", null, null);
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
195 Element label = ProtocolUtils.createArtNode(cr, "label", null, null);
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
196 Element value = ProtocolUtils.createArtNode(cr, "value", null, null);
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
197
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
198 String[] arr = (String[]) obj;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
199
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
200 label.setTextContent(arr[0]);
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
201 value.setTextContent(arr[1]);
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
202
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
203 item.appendChild(label);
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
204 item.appendChild(value);
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
205
681
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
206 if (q != null) {
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
207 Element qRange = createRangeElement(cr, q, "Q");
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
208 item.appendChild(qRange);
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
209 }
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
210
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
211 if (w != null) {
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
212 Element wRange = createRangeElement(cr, w, "W");
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
213 item.appendChild(wRange);
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
214 }
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
215
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
216 return item;
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
217 }
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
218
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
219
681
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
220 protected Element createRangeElement(
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
221 XMLUtils.ElementCreator cr,
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
222 double[] mm,
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
223 String type)
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
224 {
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
225 Element range = ProtocolUtils.createArtNode(
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
226 cr, "range",
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
227 new String[] {"type"},
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
228 new String[] {type});
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
229
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
230 Element min = ProtocolUtils.createArtNode(cr, "min", null, null);
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
231 min.setTextContent(String.valueOf(mm[0]));
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
232
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
233 Element max = ProtocolUtils.createArtNode(cr, "max", null, null);
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
234 max.setTextContent(String.valueOf(mm[1]));
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
235
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
236 range.appendChild(min);
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
237 range.appendChild(max);
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
238
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
239 return range;
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
240 }
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
241
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
242
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
243 /**
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
244 * Determines the min and max Q value for the given gauge. If no min and
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
245 * max values could be determined, this method will return
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
246 * [Double.MIN_VALUE, Double.MAX_VALUE].
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
247 *
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
248 * @param gauge
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
249 * @param wst
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
250 *
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
251 * @return the min and max Q values for the given gauge.
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
252 */
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
253 protected double[] determineMinMaxQ(Gauge gauge, Wst wst) {
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
254 logger.debug("WQAdapted.determineMinMaxQ");
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
255
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
256 double[] minmaxQ = gauge != null
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
257 ? wst.determineMinMaxQ(gauge.getRange())
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
258 : null;
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
259
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
260 double minQ = minmaxQ != null ? minmaxQ[0] : Double.MIN_VALUE;
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
261 double maxQ = minmaxQ != null ? minmaxQ[1] : Double.MAX_VALUE;
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
262
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
263 return new double[] { minQ, maxQ };
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
264 }
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
265
dda282dcc44f The min/max W/Q ranges in the panel for calculation4 are written into the DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 660
diff changeset
266
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
267 @Override
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
268 protected String getUIProvider() {
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
269 return "wq_panel_adapted";
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
270 }
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
271
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
272
660
627be3ca1ab6 code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 642
diff changeset
273 @Override
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
274 public boolean validate(Artifact artifact, CallContext context)
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
275 throws IllegalArgumentException
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
276 {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
277 logger.debug("WQAdapted.validate");
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
278
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
279 FLYSArtifact flys = (FLYSArtifact) artifact;
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
280 StateData data = getData(flys, FIELD_WQ_MODE);
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
281
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
282 String mode = data != null ? (String) data.getValue() : null;
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
283
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
284 if (mode != null && mode.equals("W")) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
285 return validateW(artifact, context);
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
286 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
287 else if (mode != null && mode.equals("Q")) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
288 return validateQ(artifact, context);
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
289 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
290 else {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
291 throw new IllegalArgumentException("error_feed_no_wq_mode_selected");
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
292 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
293 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
294
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
295
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
296 protected boolean validateW(Artifact artifact, CallContext context)
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
297 throws IllegalArgumentException
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
298 {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
299 logger.debug("WQAdapted.validateW");
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
300 FLYSArtifact flys = (FLYSArtifact) artifact;
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
301
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
302 RangeWithValues[] rwvs = extractInput(getData(flys, "wq_values"));
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
303
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
304 if (rwvs == null) {
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
305 throw new IllegalArgumentException("error_missing_wq_data");
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
306 }
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
307
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
308 List<Gauge> gauges = ((FLYSArtifact) artifact).getGauges();
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
309
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
310 for (Gauge gauge: gauges) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
311 Range range = gauge.getRange();
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
312 double lower = range.getA().doubleValue();
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
313 double upper = range.getB().doubleValue();
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
314
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
315 for (RangeWithValues rwv: rwvs) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
316 if (lower <= rwv.getLower() && upper >= rwv.getUpper()) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
317 compareWsWithGauge(gauge, rwv.getValues());
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
318 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
319 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
320 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
321
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
322 return true;
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
323 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
324
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
325
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
326 protected boolean validateQ(Artifact artifact, CallContext context)
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
327 throws IllegalArgumentException
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
328 {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
329 logger.debug("WQAdapted.validateQ");
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
330 FLYSArtifact flys = (FLYSArtifact) artifact;
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
331
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
332 RangeWithValues[] rwvs = extractInput(getData(flys, "wq_values"));
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
333
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
334 if (rwvs == null) {
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
335 throw new IllegalArgumentException("error_missing_wq_data");
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
336 }
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
337
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
338 List<Gauge> gauges = ((FLYSArtifact) artifact).getGauges();
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
339 River river = ((FLYSArtifact) artifact).getRiver();
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
340 Wst wst = WstFactory.getWst(river);
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
341
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
342 for (Gauge gauge: gauges) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
343 Range range = gauge.getRange();
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
344 double lower = range.getA().doubleValue();
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
345 double upper = range.getB().doubleValue();
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
346
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
347 for (RangeWithValues rwv: rwvs) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
348 if (lower <= rwv.getLower() && upper >= rwv.getUpper()) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
349 compareQsWithGauge(wst, gauge, rwv.getValues());
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
350 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
351 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
352 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
353
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
354 return true;
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
355 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
356
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
357
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
358 protected boolean compareQsWithGauge(Wst wst, Gauge gauge, double[] qs)
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
359 throws IllegalArgumentException
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
360 {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
361 double[] minmax = gauge != null
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
362 ? wst.determineMinMaxQ(gauge.getRange())
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
363 : null;
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
364
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
365 if (minmax == null) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
366 logger.warn("Could not determine min/max Q of gauge.");
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
367 return true;
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
368 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
369
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
370 if (logger.isDebugEnabled()) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
371 logger.debug("Validate Qs with:");
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
372 logger.debug("-- Gauge: " + gauge.getName());
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
373 logger.debug("-- Gauge min: " + minmax[0]);
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
374 logger.debug("-- Gauge max: " + minmax[1]);
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
375 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
376
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
377 for (double q: qs) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
378 if (q < minmax[0] || q > minmax[1]) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
379 throw new IllegalArgumentException(
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
380 "error_feed_q_values_invalid");
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
381 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
382 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
383
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
384 return true;
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
385 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
386
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
387
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
388 protected boolean compareWsWithGauge(Gauge gauge, double[] ws)
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
389 throws IllegalArgumentException
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
390 {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
391 double[] minmax = gauge != null
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
392 ? gauge.determineMinMaxW()
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
393 : null;
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
394
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
395 if (minmax == null) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
396 logger.warn("Could not determine min/max W of gauge.");
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
397 return true;
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
398 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
399
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
400 if (logger.isDebugEnabled()) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
401 logger.debug("Validate Ws with:");
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
402 logger.debug("-- Gauge: " + gauge.getName());
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
403 logger.debug("-- Gauge min: " + minmax[0]);
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
404 logger.debug("-- Gauge max: " + minmax[1]);
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
405 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
406
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
407 for (double w: ws) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
408 if (w < minmax[0] || w > minmax[1]) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
409 throw new IllegalArgumentException(
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
410 "error_feed_w_values_invalid");
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
411 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
412 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
413
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
414 return true;
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
415 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
416
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
418 protected RangeWithValues[] extractInput(StateData data) {
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
419 if (data == null) {
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
420 return null;
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
421 }
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.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 417
diff changeset
422
417
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
423 String dataString = (String) data.getValue();
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
424 String[] ranges = dataString.split(":");
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
425
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
426 List<RangeWithValues> rwv = new ArrayList<RangeWithValues>();
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
427
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
428 for (String range: ranges) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
429 String[] parts = range.split(";");
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
430
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
431 double lower = Double.parseDouble(parts[0]);
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
432 double upper = Double.parseDouble(parts[1]);
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
433
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
434 String[] values = parts[2].split(",");
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
435
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
436 int num = values.length;
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
437 double[] res = new double[num];
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
438
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
439 for (int i = 0; i < num; i++) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
440 try {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
441 res[i] = Double.parseDouble(values[i]);
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
442 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
443 catch (NumberFormatException nfe) {
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
444 logger.warn(nfe, nfe);
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
445 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
446 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
447
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
448 rwv.add(new RangeWithValues(lower, upper, res));
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
449 }
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
450
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
451 return (RangeWithValues[]) rwv.toArray(new RangeWithValues[rwv.size()]);
e54053bc0e70 Implemented the input validation of WQ in the adapted WQ panel.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 401
diff changeset
452 }
399
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
453 }
53cc794fee07 Improved the transition model and added states to enable the 'discharge longitudinal section' computation - NOTE: the work in this computation has not finished yet.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
454 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org