diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCurveFacet.java @ 9265:e5367900dd6d

Small cleanup concerning getPoints Adding validStations as dataItem to flood duration calculation Flood duration now km aware
author gernotbelger
date Tue, 17 Jul 2018 19:48:28 +0200
parents ef7b65576d4b
children 465347d12990
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCurveFacet.java	Tue Jul 17 19:48:23 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCurveFacet.java	Tue Jul 17 19:48:28 2018 +0200
@@ -8,8 +8,7 @@
 
 package org.dive4elements.river.artifacts.sinfo.flood_duration;
 
-//import java.util.ArrayList;
-//import java.util.List;
+import static org.dive4elements.river.exports.injector.InjectorConstants.CURRENT_KM;
 
 import org.apache.log4j.Logger;
 import org.dive4elements.artifactdatabase.state.DefaultFacet;
@@ -18,7 +17,6 @@
 import org.dive4elements.artifacts.CallContext;
 import org.dive4elements.river.artifacts.D4EArtifact;
 import org.dive4elements.river.artifacts.model.CalculationResult;
-//import org.dive4elements.river.artifacts.model.WQDay;
 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
 
 
@@ -57,8 +55,32 @@
 
         final FloodDurationCalculationResults data = (FloodDurationCalculationResults) res.getData();
 
+        final double currentKm = getCurrentKm(context);
+        // TODO: entweder in data.getDurationCurve() reingeben, oder bei FloodDurationCalculationResults auswerten...
+        // TODO: was ist aus perfromanz/speicher-sicht besser?
+
         return data.getDurationCurve();
-        // return getTestData();
+    }
+
+    /**
+     * Returns the current km from the context.
+     * If the context is null or doesn't contain a currentKm
+     * then a double value of -1 will be returned.
+     *
+     * @param context
+     *            The CallContext instance
+     * @return the current km as double
+     */
+    // FIXME: copied from org.dive4elements.river.artifacts.model.fixings.FixingsFacet
+    private double getCurrentKm(final CallContext context) {
+        if (context == null)
+            return Double.NaN;
+
+        final Double dkm = (Double) context.getContextValue(CURRENT_KM);
+        if (dkm == null)
+            return Double.NaN;
+
+        return dkm.doubleValue();
     }
 
     // private WQDay getTestData() {
@@ -74,7 +96,6 @@
     // return new WQDay(days, ws, qs);
     // }
 
-
     // @Override
     // public List getStaticDataProviderKeys(final Artifact art) {
     // final List list = new ArrayList();

http://dive4elements.wald.intevation.org