diff 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
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java	Mon May 23 14:32:17 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/WQAdapted.java	Mon May 23 15:11:55 2011 +0000
@@ -2,7 +2,6 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import org.apache.log4j.Logger;
 
@@ -160,9 +159,10 @@
     {
         logger.debug("WQAdapted.validate");
 
-        Map<String, StateData> data = getData();
+        FLYSArtifact flys = (FLYSArtifact) artifact;
+        StateData    data = getData(flys, FIELD_WQ_MODE);
 
-        String mode = (String) data.get(FIELD_WQ_MODE).getValue();
+        String mode = data != null ? (String) data.getValue() : null;
 
         if (mode != null && mode.equals("W")) {
             return validateW(artifact, context);
@@ -180,8 +180,14 @@
     throws IllegalArgumentException
     {
         logger.debug("WQAdapted.validateW");
+        FLYSArtifact flys = (FLYSArtifact) artifact;
 
-        RangeWithValues[] rwvs = extractInput(getData("wq_values"));
+        RangeWithValues[] rwvs = extractInput(getData(flys, "wq_values"));
+
+        if (rwvs == null) {
+            throw new IllegalArgumentException("error_missing_wq_data");
+        }
+
         List<Gauge>     gauges = ((FLYSArtifact) artifact).getGauges();
 
         for (Gauge gauge: gauges) {
@@ -204,8 +210,14 @@
     throws IllegalArgumentException
     {
         logger.debug("WQAdapted.validateQ");
+        FLYSArtifact flys = (FLYSArtifact) artifact;
 
-        RangeWithValues[] rwvs = extractInput(getData("wq_values"));
+        RangeWithValues[] rwvs = extractInput(getData(flys, "wq_values"));
+
+        if (rwvs == null) {
+            throw new IllegalArgumentException("error_missing_wq_data");
+        }
+
         List<Gauge>     gauges = ((FLYSArtifact) artifact).getGauges();
         River            river = ((FLYSArtifact) artifact).getRiver();
         Wst                wst = WstFactory.getWst(river);
@@ -287,6 +299,10 @@
 
 
     protected RangeWithValues[] extractInput(StateData data) {
+        if (data == null) {
+            return null;
+        }
+
         String dataString = (String) data.getValue();
         String[]   ranges = dataString.split(":");
 

http://dive4elements.wald.intevation.org