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);
                 }
             }

http://dive4elements.wald.intevation.org