Mercurial > dive4elements > river
comparison 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 |
comparison
equal
deleted
inserted
replaced
9320:61e6d158a20f | 9321:a978b601a034 |
---|---|
12 import java.util.ArrayList; | 12 import java.util.ArrayList; |
13 import java.util.List; | 13 import java.util.List; |
14 import java.util.NavigableMap; | 14 import java.util.NavigableMap; |
15 import java.util.TreeMap; | 15 import java.util.TreeMap; |
16 | 16 |
17 import org.apache.commons.lang.math.DoubleRange; | |
17 import org.dive4elements.artifacts.CallContext; | 18 import org.dive4elements.artifacts.CallContext; |
18 import org.dive4elements.river.artifacts.access.RangeAccess; | 19 import org.dive4elements.river.artifacts.access.RangeAccess; |
19 import org.dive4elements.river.artifacts.model.Calculation; | 20 import org.dive4elements.river.artifacts.model.Calculation; |
20 import org.dive4elements.river.artifacts.model.CalculationResult; | 21 import org.dive4elements.river.artifacts.model.CalculationResult; |
21 import org.dive4elements.river.artifacts.resources.Resources; | 22 import org.dive4elements.river.artifacts.resources.Resources; |
47 final SalixLineAccess accessSalix = new SalixLineAccess(uinfo); | 48 final SalixLineAccess accessSalix = new SalixLineAccess(uinfo); |
48 | 49 |
49 final River river = accessSalix.getRiver(); | 50 final River river = accessSalix.getRiver(); |
50 final RiverInfo riverInfo = new RiverInfo(river); | 51 final RiverInfo riverInfo = new RiverInfo(river); |
51 | 52 |
52 // final DoubleRange range = accessSalix.getRange(); | 53 final DoubleRange range = accessSalix.getRange(); |
53 // final boolean useScenario = accessSalix.getUseScenario(); | 54 |
54 // final String selectedScenario = accessSalix.getScenario(); | 55 final ScenarioType scenarioType = accessSalix.getScenario(); |
55 // final Double fromPart = accessSalix.getFromPart(); | 56 |
56 // final Double toPart = accessSalix.getToPart(); | 57 final RiverInfoProvider riverInfoProvider = RiverInfoProvider.forRange(this.context, river, range); |
57 // | 58 |
58 // final boolean useSCenario = accessSalix.getUseScenario(); | 59 final SalixLineCalculationResults results = new SalixLineCalculationResults(calcModeLabel, user, riverInfo, range); |
59 // final String scenario = accessSalix.getScenario(); | 60 |
60 // calculation_mode | 61 final SalixLineCalculator calculator = new SalixLineCalculator(riverInfoProvider); |
61 // ld_from , ld_to | |
62 // use_scenario (boolean) | |
63 // ld_from_part; ld_to_part | |
64 // scenario_selection (mögliche Werte:"scenarioType.option1" "scenarioType.option2" "scenarioType.option3" | |
65 final RiverInfoProvider riverInfoProvider = RiverInfoProvider.forRange(this.context, river, accessSalix.getRange()); | |
66 | |
67 // FIXME: real calculation | |
68 | |
69 final SalixLineCalculationResults results = new SalixLineCalculationResults(calcModeLabel, user, riverInfo, accessSalix.getRange()); | |
70 | |
71 final SalixLineCalculator calculator = new SalixLineCalculator(this.context, riverInfoProvider); | |
72 final NavigableMap<Double, List<Double>> rangeScenarios = buildRangeScenarios(accessSalix); | 62 final NavigableMap<Double, List<Double>> rangeScenarios = buildRangeScenarios(accessSalix); |
73 | 63 |
74 calculator.execute(problems, uinfo, rangeScenarios, accessSalix.getScenario(), buildScenarioLabels(accessSalix), results); | 64 calculator.execute(problems, uinfo, rangeScenarios, scenarioType, buildScenarioLabels(accessSalix), results); |
75 | 65 |
76 // final Collection<ResultRow> rows = new ArrayList<>(); | 66 // final Collection<ResultRow> rows = new ArrayList<>(); |
77 // SalixLineCalculationNoScenarioResult result = null; // verzweigung etwas ungünstig. möglicherweise auch die | 67 // SalixLineCalculationNoScenarioResult result = null; // verzweigung etwas ungünstig. möglicherweise auch die |
78 // Abstraktion. ist erstmal nur ne idee | 68 // Abstraktion. ist erstmal nur ne idee |
79 // final ResultRow row1 = ResultRow.create(). // | 69 // final ResultRow row1 = ResultRow.create(). // |
147 // } | 137 // } |
148 // } | 138 // } |
149 // results.addResult(result, problems); | 139 // results.addResult(result, problems); |
150 return new CalculationResult(results, problems); | 140 return new CalculationResult(results, problems); |
151 } | 141 } |
152 | |
153 // private SalixScenario findScenarioByKm(final double km, final Map<DoubleRange, SalixScenario> rangeScenarioMap) { | |
154 // final Iterator<DoubleRange> rangeIterator = rangeScenarioMap.keySet().iterator(); | |
155 // while (rangeIterator.hasNext()) { | |
156 // final DoubleRange range = rangeIterator.next(); | |
157 // if (range.containsDouble(km + 0.0001)) { | |
158 // return rangeScenarioMap.get(range); | |
159 // } | |
160 // } | |
161 // return null; | |
162 // } | |
163 | 142 |
164 /** | 143 /** |
165 * Build a map of delta-Ws by km-range for the selected scenario | 144 * Build a map of delta-Ws by km-range for the selected scenario |
166 */ | 145 */ |
167 private NavigableMap<Double, List<Double>> buildRangeScenarios(final SalixLineAccess access) { | 146 private NavigableMap<Double, List<Double>> buildRangeScenarios(final SalixLineAccess access) { |
173 fillRangeScenarios(rangeScenarios, access.getSupraRegionalString()); | 152 fillRangeScenarios(rangeScenarios, access.getSupraRegionalString()); |
174 // TODO else if (access.getScenario().equals(ScenarioType.HISTORICAL.getKey())) | 153 // TODO else if (access.getScenario().equals(ScenarioType.HISTORICAL.getKey())) |
175 // historisches Szenario aus MSH etc. | 154 // historisches Szenario aus MSH etc. |
176 else | 155 else |
177 fillRangeScenarios(rangeScenarios, access); | 156 fillRangeScenarios(rangeScenarios, access); |
157 | |
178 return rangeScenarios; | 158 return rangeScenarios; |
179 } | 159 } |
180 | 160 |
181 /** | 161 /** |
182 * Fill a map of delta-Ws with only one 0-delta for the whole calc range (no scenario) | 162 * Fill a map of delta-Ws with only one 0-delta for the whole calc range (no scenario) |