diff artifacts/src/main/java/org/dive4elements/river/exports/ComputedDischargeCurveExporter.java @ 8362:839032ac1523

Purge obsolete representation of reference system for discharge tables.
author Tom Gottfried <tom@intevation.de>
date Wed, 01 Oct 2014 15:54:47 +0200
parents e4606eae8ea5
children 3508d625092f
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/ComputedDischargeCurveExporter.java	Wed Oct 01 15:42:55 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/ComputedDischargeCurveExporter.java	Wed Oct 01 15:54:47 2014 +0200
@@ -47,6 +47,7 @@
 import org.dive4elements.river.utils.RiverUtils;
 import org.dive4elements.river.utils.Formatter;
 
+import static org.dive4elements.river.exports.injector.InjectorConstants.PNP;
 
 /**
  * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
@@ -76,7 +77,6 @@
     protected String riverUnit;
     protected String gaugeName;
     protected double gaugeDatum;
-    protected boolean isCalculated;
     protected Date validSince;
 
     public ComputedDischargeCurveExporter() {
@@ -104,7 +104,6 @@
             return;
         }
         if (referenceWQ != null) {
-            wUnit = referenceWQ.getWUnit();
             D4EArtifact arti = (D4EArtifact)master;
             River river = RiverUtils.getRiver(arti);
             riverUnit = river.getWstUnit().getName();
@@ -113,15 +112,11 @@
             double[] kms = rangeAccess.getKmRange();
 
             Gauge gauge = river.determineGaugeByPosition(kms[0]);
-            log.debug("Kms 0: " + kms[0]);
-            if (Math.abs(kms[0] - gauge.getStation().doubleValue()) < 1e-4) {
+            if (context.getContextValue(PNP) instanceof Number) {
+                wUnit = "cm";
                 gaugeName = gauge.getName();
                 gaugeDatum = gauge.getDatum().doubleValue();
 
-                // Assumption is that values at a gauge that are in the meter
-                // reference system are calculated.
-                isCalculated = wUnit.equals("m");
-
                 // Now convert the data to cm because we are at gauge
                 List<WQKms> newData = new ArrayList<WQKms>();
                 for (WQKms d2: data) {
@@ -129,7 +124,6 @@
                                 WQ.getFixedWQforExportAtGauge((WQ)d2, gauge.getDatum())));
                 }
                 data = newData; // All hail the garbage collector
-                wUnit = "cm";
 
                 validSince = gauge.fetchMasterDischargeTable().getTimeInterval().getStartTime();
             } else {
@@ -260,16 +254,14 @@
 
         source.addMetaData("date", df.format(new Date()));
 
-        source.addMetaData("wUnit", wUnit.equals("m") ? riverUnit : "cm");
+        source.addMetaData("wUnit", wUnit.equals("cm") ? "cm" : riverUnit);
 
         RangeAccess rangeAccess = new RangeAccess(flys);
         double[] kms = rangeAccess.getKmRange();
         source.addMetaData("range",
                 Formatter.getCalculationKm(context.getMeta()).format(kms[0]));
 
-        // When w is in meter we are not at a gauge so our values
-        // must be calculated
-        if (isCalculated || wUnit.equals("m")) {
+        if (!(context.getContextValue(PNP) instanceof Number)) {
             source.addMetaData("valid_since", "");
             source.addMetaData("calculation", Resources.getMsg(
                                                 locale,

http://dive4elements.wald.intevation.org