diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculation.java @ 9321:a978b601a034

Salix: Fixed ArrrayoutOfBoundsException; minor cleanup
author gernotbelger
date Fri, 27 Jul 2018 10:25:09 +0200
parents 7b2b086e45f0
children 2aec052d4088
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculation.java	Fri Jul 27 10:19:38 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/salix/SalixLineCalculation.java	Fri Jul 27 10:25:09 2018 +0200
@@ -14,6 +14,7 @@
 import java.util.NavigableMap;
 import java.util.TreeMap;
 
+import org.apache.commons.lang.math.DoubleRange;
 import org.dive4elements.artifacts.CallContext;
 import org.dive4elements.river.artifacts.access.RangeAccess;
 import org.dive4elements.river.artifacts.model.Calculation;
@@ -49,29 +50,18 @@
         final River river = accessSalix.getRiver();
         final RiverInfo riverInfo = new RiverInfo(river);
 
-        // final DoubleRange range = accessSalix.getRange();
-        // final boolean useScenario = accessSalix.getUseScenario();
-        // final String selectedScenario = accessSalix.getScenario();
-        // final Double fromPart = accessSalix.getFromPart();
-        // final Double toPart = accessSalix.getToPart();
-        //
-        // final boolean useSCenario = accessSalix.getUseScenario();
-        // final String scenario = accessSalix.getScenario();
-        // calculation_mode
-        // ld_from , ld_to
-        // use_scenario (boolean)
-        // ld_from_part; ld_to_part
-        // scenario_selection (mögliche Werte:"scenarioType.option1" "scenarioType.option2" "scenarioType.option3"
-        final RiverInfoProvider riverInfoProvider = RiverInfoProvider.forRange(this.context, river, accessSalix.getRange());
+        final DoubleRange range = accessSalix.getRange();
 
-        // FIXME: real calculation
+        final ScenarioType scenarioType = accessSalix.getScenario();
 
-        final SalixLineCalculationResults results = new SalixLineCalculationResults(calcModeLabel, user, riverInfo, accessSalix.getRange());
+        final RiverInfoProvider riverInfoProvider = RiverInfoProvider.forRange(this.context, river, range);
 
-        final SalixLineCalculator calculator = new SalixLineCalculator(this.context, riverInfoProvider);
+        final SalixLineCalculationResults results = new SalixLineCalculationResults(calcModeLabel, user, riverInfo, range);
+
+        final SalixLineCalculator calculator = new SalixLineCalculator(riverInfoProvider);
         final NavigableMap<Double, List<Double>> rangeScenarios = buildRangeScenarios(accessSalix);
 
-        calculator.execute(problems, uinfo, rangeScenarios, accessSalix.getScenario(), buildScenarioLabels(accessSalix), results);
+        calculator.execute(problems, uinfo, rangeScenarios, scenarioType, buildScenarioLabels(accessSalix), results);
 
         // final Collection<ResultRow> rows = new ArrayList<>();
         // SalixLineCalculationNoScenarioResult result = null; // verzweigung etwas ungünstig. möglicherweise auch die
@@ -150,17 +140,6 @@
         return new CalculationResult(results, problems);
     }
 
-    // private SalixScenario findScenarioByKm(final double km, final Map<DoubleRange, SalixScenario> rangeScenarioMap) {
-    // final Iterator<DoubleRange> rangeIterator = rangeScenarioMap.keySet().iterator();
-    // while (rangeIterator.hasNext()) {
-    // final DoubleRange range = rangeIterator.next();
-    // if (range.containsDouble(km + 0.0001)) {
-    // return rangeScenarioMap.get(range);
-    // }
-    // }
-    // return null;
-    // }
-
     /**
      * Build a map of delta-Ws by km-range for the selected scenario
      */
@@ -175,6 +154,7 @@
         // historisches Szenario aus MSH etc.
         else
             fillRangeScenarios(rangeScenarios, access);
+
         return rangeScenarios;
     }
 

http://dive4elements.wald.intevation.org