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 :

http://dive4elements.wald.intevation.org