annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java @ 1169:0dc274b5f4ba

Fix flys/issue310 (crosssection theme). flys-artifacts/trunk@2725 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Wed, 14 Sep 2011 07:46:40 +0000
parents fc572b30f1b8
children 1aba1a75beb2
rev   line source
127
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts.states;
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import org.apache.log4j.Logger;
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import org.w3c.dom.Element;
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6
313
89bd0417418f The location/distance state now writes default values into DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 157
diff changeset
7 import de.intevation.artifacts.Artifact;
127
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 import de.intevation.artifacts.CallContext;
141
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
9 import de.intevation.artifacts.CallMeta;
127
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import de.intevation.artifacts.common.utils.XMLUtils;
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import de.intevation.artifactdatabase.ProtocolUtils;
323
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
14 import de.intevation.artifactdatabase.data.StateData;
127
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
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: 323
diff changeset
16 import de.intevation.flys.artifacts.FLYSArtifact;
141
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
17 import de.intevation.flys.artifacts.resources.Resources;
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
18
127
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 /**
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 */
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 public class CalculationSelect extends DefaultState {
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23
1148
302461d5d071 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1050
diff changeset
24 /** The logger that is used in this class. */
127
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 private static Logger logger = Logger.getLogger(CalculationSelect.class);
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
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: 323
diff changeset
28 public static final String FIELD_MODE = "calculation_mode";
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: 323
diff changeset
29
1148
302461d5d071 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1050
diff changeset
30 /** Constant value for the reference line calculation. */
157
b5c99532f898 Adapted the available calculation modes of WINFO and its order in the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 141
diff changeset
31 public static final String CALCULATION_SURFACE_CURVE =
b5c99532f898 Adapted the available calculation modes of WINFO and its order in the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 141
diff changeset
32 "calc.surface.curve";
141
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
33
1148
302461d5d071 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1050
diff changeset
34 /** Constant value for the differences calculation. */
157
b5c99532f898 Adapted the available calculation modes of WINFO and its order in the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 141
diff changeset
35 public static final String CALCULATION_DURATION_CURVE =
b5c99532f898 Adapted the available calculation modes of WINFO and its order in the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 141
diff changeset
36 "calc.duration.curve";
141
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
37
1148
302461d5d071 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1050
diff changeset
38 /** Constant value for the flood map calculation. */
141
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
39 public static final String CALCULATION_FLOOD_MAP =
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
40 "calc.flood.map";
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
41
1148
302461d5d071 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1050
diff changeset
42 /** Constant value for the profile calculation. */
157
b5c99532f898 Adapted the available calculation modes of WINFO and its order in the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 141
diff changeset
43 public static final String CALCULATION_DISCHARGE_LONGITUDINAL_CURVE =
b5c99532f898 Adapted the available calculation modes of WINFO and its order in the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 141
diff changeset
44 "calc.discharge.longitudinal.section";
141
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
45
1148
302461d5d071 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1050
diff changeset
46 /** Constant value for the state discharge curve calculation. */
157
b5c99532f898 Adapted the available calculation modes of WINFO and its order in the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 141
diff changeset
47 public static final String CALCULATION_DISCHARGE_CURVE =
b5c99532f898 Adapted the available calculation modes of WINFO and its order in the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 141
diff changeset
48 "calc.discharge.curve";
141
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
49
1152
fc572b30f1b8 Added configuration to kick-in w-differences branch of winfo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1148
diff changeset
50 /** Constant value for the state w differences calculation. */
fc572b30f1b8 Added configuration to kick-in w-differences branch of winfo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1148
diff changeset
51 public static final String CALCULATION_W_DIFFERENCES =
fc572b30f1b8 Added configuration to kick-in w-differences branch of winfo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1148
diff changeset
52 "calc.w.differences";
fc572b30f1b8 Added configuration to kick-in w-differences branch of winfo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1148
diff changeset
53
fc572b30f1b8 Added configuration to kick-in w-differences branch of winfo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1148
diff changeset
54 /** An array that holds all available calculation modes. */
141
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
55 public static final String[] CALCULATIONS = {
157
b5c99532f898 Adapted the available calculation modes of WINFO and its order in the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 141
diff changeset
56 CALCULATION_SURFACE_CURVE,
141
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
57 CALCULATION_FLOOD_MAP,
157
b5c99532f898 Adapted the available calculation modes of WINFO and its order in the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 141
diff changeset
58 CALCULATION_DISCHARGE_CURVE,
b5c99532f898 Adapted the available calculation modes of WINFO and its order in the DESCRIBE document.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 141
diff changeset
59 CALCULATION_DURATION_CURVE,
1152
fc572b30f1b8 Added configuration to kick-in w-differences branch of winfo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1148
diff changeset
60 CALCULATION_DISCHARGE_LONGITUDINAL_CURVE,
fc572b30f1b8 Added configuration to kick-in w-differences branch of winfo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1148
diff changeset
61 CALCULATION_W_DIFFERENCES };
141
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
62
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
63
1148
302461d5d071 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1050
diff changeset
64 /** Error message that is thrown if no mode has been chosen. */
323
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
65 public static final String ERROR_NO_CALCULATION_MODE =
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
66 "error_feed_no_calculation_mode";
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
67
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
68 /** Error message that is thrown if an invalid calculation mode has been
1148
302461d5d071 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1050
diff changeset
69 * chosen. */
323
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
70 public static final String ERROR_INVALID_CALCULATION_MODE =
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
71 "error_feed_invalid_calculation_mode";
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
72
742
c09c9e05ecfa Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 660
diff changeset
73
660
627be3ca1ab6 code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
74 public CalculationSelect() {
627be3ca1ab6 code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
75 }
323
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
76
660
627be3ca1ab6 code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
77
627be3ca1ab6 code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 624
diff changeset
78 @Override
127
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 protected Element[] createItems(
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 XMLUtils.ElementCreator cr,
313
89bd0417418f The location/distance state now writes default values into DESCRIBE.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 157
diff changeset
81 Artifact artifact,
127
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 String name,
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 CallContext context)
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 {
141
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
85 CallMeta meta = context.getMeta();
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
86 Element[] calcs = new Element[CALCULATIONS.length];
127
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
141
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
88 int i = 0;
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
89
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
90 for (String calc: CALCULATIONS) {
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
91 calcs[i++] = createItem(
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
92 cr, new String[] {
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
93 Resources.getMsg(meta, calc, calc),
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
94 calc
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
95 });
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
96 }
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
97
7f909429ccc8 Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 127
diff changeset
98 return calcs;
127
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 }
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 protected Element createItem(XMLUtils.ElementCreator cr, Object obj) {
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 Element item = ProtocolUtils.createArtNode(cr, "item", null, null);
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 Element label = ProtocolUtils.createArtNode(cr, "label", null, null);
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 Element value = ProtocolUtils.createArtNode(cr, "value", null, null);
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 String[] arr = (String[]) obj;
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 label.setTextContent(arr[0]);
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 value.setTextContent(arr[1]);
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 item.appendChild(label);
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 item.appendChild(value);
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 return item;
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 }
323
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
117
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
118
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
119 @Override
1050
eccf966fb677 State engine: Removed CallContext from state validation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 742
diff changeset
120 public boolean validate(Artifact artifact)
323
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
121 throws IllegalArgumentException
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
122 {
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
123 logger.debug("CalculationSelect.validate");
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: 323
diff changeset
124 FLYSArtifact flys = (FLYSArtifact) artifact;
323
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
125
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: 323
diff changeset
126 StateData data = getData(flys, FIELD_MODE);
1148
302461d5d071 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 1050
diff changeset
127 String calc = (data != null) ? (String) data.getValue() : null;
323
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
128
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
129 if (calc == null) {
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
130 throw new IllegalArgumentException(ERROR_NO_CALCULATION_MODE);
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
131 }
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
132
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
133 calc = calc.trim().toLowerCase();
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
134
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
135 for (String mode: CALCULATIONS) {
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
136 if (mode.equals(calc)) {
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
137 return true;
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
138 }
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
139 }
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
140
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
141 throw new IllegalArgumentException(ERROR_INVALID_CALCULATION_MODE);
b33ba2cd4a3e The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 313
diff changeset
142 }
127
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143 }
21d791e21aca Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org