Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/WINFOArtifact.java @ 9479:2b83d3a96703
i18n TODO "benutzerdefiniert" = "custom" fixed
author | gernotbelger |
---|---|
date | Mon, 10 Sep 2018 15:31:55 +0200 |
parents | 3f49835a00c3 |
children | b380a5693514 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/WINFOArtifact.java Mon Sep 10 14:21:36 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/WINFOArtifact.java Mon Sep 10 15:31:55 2018 +0200 @@ -18,6 +18,7 @@ import org.dive4elements.artifactdatabase.state.FacetActivity; import org.dive4elements.artifacts.Artifact; import org.dive4elements.artifacts.CallContext; +import org.dive4elements.artifacts.CallMeta; import org.dive4elements.artifacts.common.utils.StringUtils; import org.dive4elements.river.artifacts.access.Calculation4Access; import org.dive4elements.river.artifacts.access.ComputationRangeAccess; @@ -137,9 +138,9 @@ return this.getWaterlevelData(null); } - private CalculationResult getDischargeLongitudinalSectionData() { + private CalculationResult getDischargeLongitudinalSectionData(final CallMeta meta) { // TODO: This caluclation should be cached as it is quite expensive. - return new Calculation4(new Calculation4Access(this)).calculate(); + return new Calculation4(new Calculation4Access(this)).calculate(meta); } /** @@ -155,7 +156,7 @@ // If this WINFO-Artifact has a calculation trait. if (calculationMode != null) { if (calculationMode.equals("calc.discharge.longitudinal.section")) - return getDischargeLongitudinalSectionData(); + return getDischargeLongitudinalSectionData(context.getMeta()); if (calculationMode.equals("calc.extreme.curve")) return (CalculationResult) this.compute(context, ComputeType.ADVANCE, false); @@ -486,9 +487,9 @@ /** * Get corrected waterline against surface/profile. */ - private double waterLineC(final int idx, final double currentKm) { + private double waterLineC(final int idx, final double currentKm, final CallMeta meta) { - final WQKms[] wqckms = (WQKms[]) getDischargeLongitudinalSectionData().getData(); + final WQKms[] wqckms = (WQKms[]) getDischargeLongitudinalSectionData(meta).getData(); // Find index of km. final double wishKM = currentKm; @@ -555,7 +556,7 @@ if (wqkms.length <= idx) { log.error("getWaterLines() requested index (" + idx + " not found."); - return waterLineC(idx, currentKm); + return waterLineC(idx, currentKm, context.getMeta()); } // Find W at km, linear naive approach. @@ -645,16 +646,15 @@ boolean generatedWs = false; - for (int i = 0; i < ws.length; ++i) { - final double w = ws[i]; + for (final double w : ws) { if (debug) { log.debug("getQsForWs: lookup Q for W: " + w); } // There could be more than one Q per W. final double[] qs = wst.findQsForW(km, w, report); - for (int j = 0; j < qs.length; ++j) { - outWs.add(ws[i]); - outQs.add(qs[j]); + for (final double element : qs) { + outWs.add(w); + outQs.add(element); } generatedWs |= qs.length != 1; } @@ -694,18 +694,18 @@ boolean generatedWs = false; - for (int i = 0; i < ws.length; i++) { - if (Double.isNaN(ws[i])) { + for (final double element : ws) { + if (Double.isNaN(element)) { log.warn("W is NaN: ignored"); continue; } - final double[] qs = DischargeTables.getQsForW(values, ws[i]); + final double[] qs = DischargeTables.getQsForW(values, element); if (qs.length == 0) { - log.warn("No Qs found for W = " + ws[i]); + log.warn("No Qs found for W = " + element); } else { for (final double q : qs) { - wsOut.add(ws[i]); + wsOut.add(element); qsOut.add(q); } }