comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java @ 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. flys-artifacts/trunk@1982 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 23 May 2011 15:11:55 +0000
parents e54053bc0e70
children 58276db49b16
comparison
equal deleted inserted replaced
623:aa64fe4df8ab 624:929137ee8154
1 package de.intevation.flys.artifacts.states; 1 package de.intevation.flys.artifacts.states;
2 2
3 import java.util.ArrayList; 3 import java.util.ArrayList;
4 import java.util.List; 4 import java.util.List;
5 import java.util.Map;
6 5
7 import org.apache.log4j.Logger; 6 import org.apache.log4j.Logger;
8 7
9 import org.w3c.dom.Element; 8 import org.w3c.dom.Element;
10 9
158 public boolean validate(Artifact artifact, CallContext context) 157 public boolean validate(Artifact artifact, CallContext context)
159 throws IllegalArgumentException 158 throws IllegalArgumentException
160 { 159 {
161 logger.debug("WQAdapted.validate"); 160 logger.debug("WQAdapted.validate");
162 161
163 Map<String, StateData> data = getData(); 162 FLYSArtifact flys = (FLYSArtifact) artifact;
164 163 StateData data = getData(flys, FIELD_WQ_MODE);
165 String mode = (String) data.get(FIELD_WQ_MODE).getValue(); 164
165 String mode = data != null ? (String) data.getValue() : null;
166 166
167 if (mode != null && mode.equals("W")) { 167 if (mode != null && mode.equals("W")) {
168 return validateW(artifact, context); 168 return validateW(artifact, context);
169 } 169 }
170 else if (mode != null && mode.equals("Q")) { 170 else if (mode != null && mode.equals("Q")) {
178 178
179 protected boolean validateW(Artifact artifact, CallContext context) 179 protected boolean validateW(Artifact artifact, CallContext context)
180 throws IllegalArgumentException 180 throws IllegalArgumentException
181 { 181 {
182 logger.debug("WQAdapted.validateW"); 182 logger.debug("WQAdapted.validateW");
183 183 FLYSArtifact flys = (FLYSArtifact) artifact;
184 RangeWithValues[] rwvs = extractInput(getData("wq_values")); 184
185 RangeWithValues[] rwvs = extractInput(getData(flys, "wq_values"));
186
187 if (rwvs == null) {
188 throw new IllegalArgumentException("error_missing_wq_data");
189 }
190
185 List<Gauge> gauges = ((FLYSArtifact) artifact).getGauges(); 191 List<Gauge> gauges = ((FLYSArtifact) artifact).getGauges();
186 192
187 for (Gauge gauge: gauges) { 193 for (Gauge gauge: gauges) {
188 Range range = gauge.getRange(); 194 Range range = gauge.getRange();
189 double lower = range.getA().doubleValue(); 195 double lower = range.getA().doubleValue();
202 208
203 protected boolean validateQ(Artifact artifact, CallContext context) 209 protected boolean validateQ(Artifact artifact, CallContext context)
204 throws IllegalArgumentException 210 throws IllegalArgumentException
205 { 211 {
206 logger.debug("WQAdapted.validateQ"); 212 logger.debug("WQAdapted.validateQ");
207 213 FLYSArtifact flys = (FLYSArtifact) artifact;
208 RangeWithValues[] rwvs = extractInput(getData("wq_values")); 214
215 RangeWithValues[] rwvs = extractInput(getData(flys, "wq_values"));
216
217 if (rwvs == null) {
218 throw new IllegalArgumentException("error_missing_wq_data");
219 }
220
209 List<Gauge> gauges = ((FLYSArtifact) artifact).getGauges(); 221 List<Gauge> gauges = ((FLYSArtifact) artifact).getGauges();
210 River river = ((FLYSArtifact) artifact).getRiver(); 222 River river = ((FLYSArtifact) artifact).getRiver();
211 Wst wst = WstFactory.getWst(river); 223 Wst wst = WstFactory.getWst(river);
212 224
213 for (Gauge gauge: gauges) { 225 for (Gauge gauge: gauges) {
285 return true; 297 return true;
286 } 298 }
287 299
288 300
289 protected RangeWithValues[] extractInput(StateData data) { 301 protected RangeWithValues[] extractInput(StateData data) {
302 if (data == null) {
303 return null;
304 }
305
290 String dataString = (String) data.getValue(); 306 String dataString = (String) data.getValue();
291 String[] ranges = dataString.split(":"); 307 String[] ranges = dataString.split(":");
292 308
293 List<RangeWithValues> rwv = new ArrayList<RangeWithValues>(); 309 List<RangeWithValues> rwv = new ArrayList<RangeWithValues>();
294 310

http://dive4elements.wald.intevation.org