diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCurveFacet.java @ 9268:ae9dee74e43e

Fixed: current station of duration chart was not changed
author gernotbelger
date Wed, 18 Jul 2018 18:53:15 +0200
parents 465347d12990
children 83ebeb620b5a
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCurveFacet.java	Wed Jul 18 15:34:53 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCurveFacet.java	Wed Jul 18 18:53:15 2018 +0200
@@ -8,17 +8,14 @@
 
 package org.dive4elements.river.artifacts.sinfo.flood_duration;
 
-import static org.dive4elements.river.exports.injector.InjectorConstants.CURRENT_KM;
-
 import org.apache.log4j.Logger;
 import org.dive4elements.artifactdatabase.state.DefaultFacet;
 import org.dive4elements.artifactdatabase.state.Facet;
 import org.dive4elements.artifacts.Artifact;
 import org.dive4elements.artifacts.CallContext;
 import org.dive4elements.river.artifacts.D4EArtifact;
-import org.dive4elements.river.artifacts.model.CalculationResult;
 import org.dive4elements.river.artifacts.sinfo.SINFOArtifact;
-import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
+import org.dive4elements.river.exports.fixings.FixChartGenerator;
 
 
 /**
@@ -26,6 +23,8 @@
  */
 public class FloodDurationCurveFacet extends DefaultFacet {
 
+    private static final long serialVersionUID = 1L;
+
     private static Logger log = Logger.getLogger(FloodDurationCurveFacet.class);
 
     // /** Blackboard data provider key for durationcurve (wqday) data. */
@@ -52,37 +51,12 @@
 
         final D4EArtifact flys = (D4EArtifact) artifact;
 
-        final CalculationResult res = (CalculationResult) flys.compute(context, ComputeType.ADVANCE, false);
-
-        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 new FloodDurationCalculation(context).calcStationCurve(currentKm, (SINFOArtifact) flys);
-    }
+        // TODO: wird das hier noch benötigt?
+        //        final CalculationResult res = (CalculationResult) flys.compute(context, ComputeType.ADVANCE, false);
+        //        final FloodDurationCalculationResults data = (FloodDurationCalculationResults) res.getData();
 
-    /**
-     * 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();
+        final double currentKm = FixChartGenerator.getCurrentKm(context);
+        return new FloodDurationCalculation(context).calcStationCurve(currentKm, (SINFOArtifact) flys);
     }
 
     // private WQDay getTestData() {

http://dive4elements.wald.intevation.org