diff flys-artifacts/src/main/java/de/intevation/flys/utils/FLYSUtils.java @ 2422:44dc117aa2b7

Picked rev 4058,4063,4065,4068,4069 from trunk. flys-artifacts/tags/2.6.1@4077 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 17 Feb 2012 11:29:41 +0000
parents d69d8dea78dc
children ac528b883b47 ba46af45b6e4
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/utils/FLYSUtils.java	Thu Feb 16 12:35:51 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/utils/FLYSUtils.java	Fri Feb 17 11:29:41 2012 +0000
@@ -57,6 +57,12 @@
      */
     public static enum WQ_MODE { QFREE, QGAUGE, WFREE, WGAUGE, NONE };
 
+    /**
+     * An enum that represents the 4 possible WQ input modes in FLYS. The 4
+     * values are
+     * <i>ADAPTED</i> <i>SINGLE</i> <i>RANGE</i> and <i>NONE</i>.
+     */
+    public static enum WQ_INPUT { ADAPTED, SINGLE, RANGE, NONE };
 
     public static final Pattern NUMBERS_PATTERN =
         Pattern.compile("\\D*(\\d++.\\d*)\\D*");
@@ -169,16 +175,20 @@
             return WQ_MODE.NONE;
         }
 
-        String  mode = flys.getDataAsString("wq_mode");
-        Boolean free = flys.getDataAsBoolean("wq_free");
-
-        free = free != null ? free : false;
+        String values = flys.getDataAsString("wq_values");
+        Boolean isQ    = flys.getDataAsBoolean("wq_mode");
 
-        if (mode != null && mode.equals("Q")) {
-            return free ? WQ_MODE.QFREE : WQ_MODE.QGAUGE;
+        if (values != null) {
+            return isQ ? WQ_MODE.QGAUGE : WQ_MODE.WGAUGE;
         }
-        else if (mode != null && mode.equals("W")) {
-            return free ? WQ_MODE.WFREE : WQ_MODE.WGAUGE;
+
+        Boolean isFree = flys.getDataAsBoolean("wq_free");
+
+        if (isQ) {
+            return isFree ? WQ_MODE.QFREE : WQ_MODE.QGAUGE;
+        }
+        else if (!isQ) {
+            return isFree ? WQ_MODE.WFREE : WQ_MODE.WGAUGE;
         }
         else {
             return WQ_MODE.NONE;
@@ -186,6 +196,26 @@
     }
 
 
+    public static WQ_INPUT getWQInputMode(FLYSArtifact flys) {
+        if (flys == null) {
+            return WQ_INPUT.NONE;
+        }
+
+        Boolean selection = flys.getDataAsBoolean("wq_selection");
+        String adapted = flys.getDataAsString("wq_values");
+
+        if(adapted != null && adapted.length() > 0) {
+            return WQ_INPUT.ADAPTED;
+        }
+
+        if (selection != null && selection) {
+            return WQ_INPUT.RANGE;
+        }
+        else {
+            return WQ_INPUT.SINGLE;
+        }
+    }
+
     public static KM_MODE getKmRangeMode(FLYSArtifact flys) {
         String mode = flys.getDataAsString("ld_mode");
 
@@ -337,11 +367,9 @@
      * @return the Ws.
      */
     public static double[] getWs(FLYSArtifact flys) {
-        double[] kmRange = getKmRange(flys);
-
         // XXX this is not nice!
         if (flys instanceof WINFOArtifact) {
-            return ((WINFOArtifact) flys).getWs(kmRange);
+            return ((WINFOArtifact) flys).getWs();
         }
 
         logger.warn("This method currently supports WINFOArtifact only!");

http://dive4elements.wald.intevation.org