Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/CalculationSelect.java @ 323:b33ba2cd4a3e
The calculation method is validated in the feed() operation.
flys-artifacts/trunk@1717 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 18 Apr 2011 13:00:57 +0000 |
parents | 89bd0417418f |
children | 929137ee8154 |
comparison
equal
deleted
inserted
replaced
322:448d0dc64357 | 323:b33ba2cd4a3e |
---|---|
1 package de.intevation.flys.artifacts.states; | 1 package de.intevation.flys.artifacts.states; |
2 | |
3 import java.util.Map; | |
2 | 4 |
3 import org.apache.log4j.Logger; | 5 import org.apache.log4j.Logger; |
4 | 6 |
5 import org.w3c.dom.Element; | 7 import org.w3c.dom.Element; |
6 | 8 |
9 import de.intevation.artifacts.CallMeta; | 11 import de.intevation.artifacts.CallMeta; |
10 | 12 |
11 import de.intevation.artifacts.common.utils.XMLUtils; | 13 import de.intevation.artifacts.common.utils.XMLUtils; |
12 | 14 |
13 import de.intevation.artifactdatabase.ProtocolUtils; | 15 import de.intevation.artifactdatabase.ProtocolUtils; |
16 import de.intevation.artifactdatabase.data.StateData; | |
14 | 17 |
15 import de.intevation.flys.artifacts.resources.Resources; | 18 import de.intevation.flys.artifacts.resources.Resources; |
16 | 19 |
17 /** | 20 /** |
18 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 21 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
50 CALCULATION_DISCHARGE_CURVE, | 53 CALCULATION_DISCHARGE_CURVE, |
51 CALCULATION_DURATION_CURVE, | 54 CALCULATION_DURATION_CURVE, |
52 CALCULATION_DISCHARGE_LONGITUDINAL_CURVE }; | 55 CALCULATION_DISCHARGE_LONGITUDINAL_CURVE }; |
53 | 56 |
54 | 57 |
58 /** Error message that is thrown if no mode has been chosen.*/ | |
59 public static final String ERROR_NO_CALCULATION_MODE = | |
60 "error_feed_no_calculation_mode"; | |
61 | |
62 /** Error message that is thrown if an invalid calculation mode has been | |
63 * chosen.*/ | |
64 public static final String ERROR_INVALID_CALCULATION_MODE = | |
65 "error_feed_invalid_calculation_mode"; | |
66 | |
67 | |
55 protected Element[] createItems( | 68 protected Element[] createItems( |
56 XMLUtils.ElementCreator cr, | 69 XMLUtils.ElementCreator cr, |
57 Artifact artifact, | 70 Artifact artifact, |
58 String name, | 71 String name, |
59 CallContext context) | 72 CallContext context) |
88 item.appendChild(label); | 101 item.appendChild(label); |
89 item.appendChild(value); | 102 item.appendChild(value); |
90 | 103 |
91 return item; | 104 return item; |
92 } | 105 } |
106 | |
107 | |
108 @Override | |
109 public boolean validate(Artifact artifact, CallContext context) | |
110 throws IllegalArgumentException | |
111 { | |
112 logger.debug("CalculationSelect.validate"); | |
113 | |
114 Map<String, StateData> data = getData(); | |
115 | |
116 String calc = (String) data.get("calculation_mode").getValue(); | |
117 | |
118 if (calc == null) { | |
119 throw new IllegalArgumentException(ERROR_NO_CALCULATION_MODE); | |
120 } | |
121 | |
122 calc = calc.trim().toLowerCase(); | |
123 | |
124 for (String mode: CALCULATIONS) { | |
125 if (mode.equals(calc)) { | |
126 return true; | |
127 } | |
128 } | |
129 | |
130 throw new IllegalArgumentException(ERROR_INVALID_CALCULATION_MODE); | |
131 } | |
93 } | 132 } |
94 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : | 133 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |