[PATCH 3 of 6] issue1020: In WaterlevelSelectState create label more differentiated at

Wald Commits scm-commit at wald.intevation.org
Thu Nov 14 12:14:54 CET 2013


# HG changeset patch
# User Felix Wolfsteller <felix.wolfsteller at intevation.de>
# Date 1384426607 -3600
# Node ID f89ad512f4261115608e63e7d5ebbe5c1f6f8d50
# Parent  f4c13fbde072dbff4e4e2bed0319e6486319c114
issue1020: In WaterlevelSelectState create label more differentiated at
which data comes out of calculation.

diff -r f4c13fbde072 -r f89ad512f426 artifacts/src/main/java/org/dive4elements/river/artifacts/states/WaterlevelSelectState.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/states/WaterlevelSelectState.java	Thu Nov 14 11:54:02 2013 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/states/WaterlevelSelectState.java	Thu Nov 14 11:56:47 2013 +0100
@@ -125,20 +125,36 @@
 
         D4EArtifact artifact = RiverUtils.getArtifact(parts[0], cc);
 
-        CalculationResult rawData = (CalculationResult) artifact.compute(
+        Object rawData = artifact.compute(
             cc,
             null,
-            WINFO_WSP_STATE_ID,
+            //WINFO_WSP_STATE_ID,
+            artifact.getCurrentStateId(),
             ComputeType.ADVANCE,
             false);
 
         WQKms[] wqkms;
 
-        if (rawData.getData() instanceof ExtremeResult) {
-            wqkms = ((ExtremeResult) rawData.getData()).getWQKms();
+        // TODO issue1020: Fetch cases in which only WKms or
+        // other weird stuff arrives.
+        if (rawData instanceof CalculationResult) {
+            CalculationResult calcResult = (CalculationResult) rawData;
+            if (calcResult.getData() instanceof ExtremeResult) {
+                wqkms = ((ExtremeResult) calcResult.getData()).getWQKms();
+            }
+            else {
+                wqkms = (WQKms[]) calcResult.getData();
+            }
+        }
+        else if (rawData instanceof WQKms) {
+            wqkms = new WQKms[] {(WQKms) rawData};
+        }
+        else if (rawData instanceof WQKms[]) {
+            wqkms = (WQKms[]) rawData;
         }
         else {
-            wqkms = (WQKms[]) rawData.getData();
+            logger.error("Do not know how to handle " + rawData.getClass());
+            wqkms = null;
         }
 
         int idx = -1;


More information about the Dive4elements-commits mailing list