Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java @ 5133:8e52b4829cd1
Fix flys/issue1228: Units in tabular calculation output.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 28 Feb 2013 12:37:07 +0100 |
parents | eb5564662e19 |
children |
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 |
323
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
13 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
|
14 |
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
|
15 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
|
16 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
|
17 |
127
21d791e21aca
Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 /** |
21d791e21aca
Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 * @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
|
20 */ |
21d791e21aca
Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 public class CalculationSelect extends DefaultState { |
21d791e21aca
Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 |
1148
302461d5d071
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1050
diff
changeset
|
23 /** 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
|
24 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
|
25 |
4043
eb5564662e19
Cosmetics, documentation.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
4041
diff
changeset
|
26 /** Name of data item. */ |
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
|
27 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
|
28 |
1148
302461d5d071
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1050
diff
changeset
|
29 /** 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
|
30 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
|
31 "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
|
32 |
1148
302461d5d071
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1050
diff
changeset
|
33 /** 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
|
34 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
|
35 "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
|
36 |
1148
302461d5d071
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1050
diff
changeset
|
37 /** 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
|
38 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
|
39 "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
|
40 |
1148
302461d5d071
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1050
diff
changeset
|
41 /** 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
|
42 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
|
43 "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
|
44 |
1148
302461d5d071
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1050
diff
changeset
|
45 /** 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
|
46 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
|
47 "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
|
48 |
1152
fc572b30f1b8
Added configuration to kick-in w-differences branch of winfo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1148
diff
changeset
|
49 /** 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
|
50 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
|
51 "calc.w.differences"; |
fc572b30f1b8
Added configuration to kick-in w-differences branch of winfo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1148
diff
changeset
|
52 |
1960
be06dbc2ed1d
Added 'Bezugslinie' to choice of calculation modes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1187
diff
changeset
|
53 /** Constant value for the state reference curve calculation. */ |
be06dbc2ed1d
Added 'Bezugslinie' to choice of calculation modes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1187
diff
changeset
|
54 public static final String CALCULATION_REFERENCE_CURVE = |
be06dbc2ed1d
Added 'Bezugslinie' to choice of calculation modes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1187
diff
changeset
|
55 "calc.reference.curve"; |
be06dbc2ed1d
Added 'Bezugslinie' to choice of calculation modes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1187
diff
changeset
|
56 |
2118
4d57d456e261
Added a new calculation option for historical discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1960
diff
changeset
|
57 /** Constant value for the historical discharge curve calculation. */ |
4d57d456e261
Added a new calculation option for historical discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1960
diff
changeset
|
58 public static final String CALCULATION_HISTORICAL_DISCHARGE_CURVE = |
4d57d456e261
Added a new calculation option for historical discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1960
diff
changeset
|
59 "calc.historical.discharge.curve"; |
4d57d456e261
Added a new calculation option for historical discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1960
diff
changeset
|
60 |
4041
75a90d9d2024
Register new calculation mode 'extreme'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2164
diff
changeset
|
61 /** Constant value for the extreme W curve calculation. */ |
75a90d9d2024
Register new calculation mode 'extreme'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2164
diff
changeset
|
62 public static final String CALCULATION_EXTREME = |
75a90d9d2024
Register new calculation mode 'extreme'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2164
diff
changeset
|
63 "calc.extreme.curve"; |
75a90d9d2024
Register new calculation mode 'extreme'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2164
diff
changeset
|
64 |
1152
fc572b30f1b8
Added configuration to kick-in w-differences branch of winfo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1148
diff
changeset
|
65 /** 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
|
66 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
|
67 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
|
68 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
|
69 CALCULATION_DISCHARGE_CURVE, |
2118
4d57d456e261
Added a new calculation option for historical discharge curves.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1960
diff
changeset
|
70 CALCULATION_HISTORICAL_DISCHARGE_CURVE, |
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
|
71 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
|
72 CALCULATION_DISCHARGE_LONGITUDINAL_CURVE, |
1960
be06dbc2ed1d
Added 'Bezugslinie' to choice of calculation modes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
1187
diff
changeset
|
73 CALCULATION_W_DIFFERENCES, |
4041
75a90d9d2024
Register new calculation mode 'extreme'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2164
diff
changeset
|
74 CALCULATION_REFERENCE_CURVE, |
75a90d9d2024
Register new calculation mode 'extreme'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2164
diff
changeset
|
75 CALCULATION_EXTREME}; |
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
|
76 |
7f909429ccc8
Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
127
diff
changeset
|
77 |
1148
302461d5d071
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1050
diff
changeset
|
78 /** 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
|
79 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
|
80 "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
|
81 |
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
82 /** 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
|
83 * chosen. */ |
323
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
84 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
|
85 "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
|
86 |
742
c09c9e05ecfa
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
660
diff
changeset
|
87 |
660
627be3ca1ab6
code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
624
diff
changeset
|
88 public CalculationSelect() { |
627be3ca1ab6
code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
624
diff
changeset
|
89 } |
323
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
90 |
660
627be3ca1ab6
code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
624
diff
changeset
|
91 |
4041
75a90d9d2024
Register new calculation mode 'extreme'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2164
diff
changeset
|
92 /** Create choices (i18ned). */ |
660
627be3ca1ab6
code clean up in states
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
624
diff
changeset
|
93 @Override |
127
21d791e21aca
Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 protected Element[] createItems( |
21d791e21aca
Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
95 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
|
96 Artifact artifact, |
127
21d791e21aca
Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
97 String name, |
21d791e21aca
Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
98 CallContext context) |
21d791e21aca
Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
99 { |
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
|
100 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
|
101 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
|
102 |
2164
d548e2e13524
Added code for the simple case of "Bezugslinienverfahren" ("W auf freier Strecke").
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2118
diff
changeset
|
103 for (int i = 0; i < CALCULATIONS.length; ++i) { |
d548e2e13524
Added code for the simple case of "Bezugslinienverfahren" ("W auf freier Strecke").
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2118
diff
changeset
|
104 String calc = CALCULATIONS[i]; |
d548e2e13524
Added code for the simple case of "Bezugslinienverfahren" ("W auf freier Strecke").
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
2118
diff
changeset
|
105 calcs[i] = createItem( |
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
|
106 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
|
107 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
|
108 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
|
109 }); |
7f909429ccc8
Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
127
diff
changeset
|
110 } |
7f909429ccc8
Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
127
diff
changeset
|
111 |
7f909429ccc8
Added some more calculation types (to the DESCRIBE in the calculation select state).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
127
diff
changeset
|
112 return calcs; |
127
21d791e21aca
Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
113 } |
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 |
4041
75a90d9d2024
Register new calculation mode 'extreme'.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
2164
diff
changeset
|
116 /** Validate the chosen calculation. */ |
323
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
117 @Override |
1050
eccf966fb677
State engine: Removed CallContext from state validation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
742
diff
changeset
|
118 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
|
119 throws IllegalArgumentException |
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
120 { |
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
121 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
|
122 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
|
123 |
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 StateData data = getData(flys, FIELD_MODE); |
1148
302461d5d071
Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
1050
diff
changeset
|
125 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
|
126 |
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
127 if (calc == null) { |
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
128 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
|
129 } |
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
130 |
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
131 calc = calc.trim().toLowerCase(); |
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 for (String mode: CALCULATIONS) { |
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
134 if (mode.equals(calc)) { |
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
135 return true; |
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
136 } |
b33ba2cd4a3e
The calculation method is validated in the feed() operation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
313
diff
changeset
|
137 } |
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 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
|
140 } |
127
21d791e21aca
Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
141 } |
21d791e21aca
Introduced a state to select the calculation mode.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
142 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |