diff artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java @ 9190:0633f963c5be

uinfo.inundationduration workflow
author gernotbelger
date Thu, 28 Jun 2018 15:10:04 +0200
parents 2f5052835b76
children bc9a45d2b1fa
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java	Thu Jun 28 14:11:12 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java	Thu Jun 28 15:10:04 2018 +0200
@@ -9,19 +9,14 @@
  */
 package org.dive4elements.river.artifacts.uinfo.inundationduration;
 
-import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
 
 import org.apache.commons.lang.math.DoubleRange;
 import org.dive4elements.artifacts.CallContext;
 import org.dive4elements.river.artifacts.access.RiverAccess;
-import org.dive4elements.river.artifacts.common.GeneralResultType;
-import org.dive4elements.river.artifacts.common.ResultRow;
 import org.dive4elements.river.artifacts.model.Calculation;
 import org.dive4elements.river.artifacts.model.CalculationResult;
 import org.dive4elements.river.artifacts.resources.Resources;
-import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
 import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils;
 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
 import org.dive4elements.river.artifacts.uinfo.UINFOArtifact;
@@ -53,35 +48,34 @@
         final RiverInfo riverInfo = new RiverInfo(river);
         final DoubleRange calcRange = indurax.getRange();
         final String url = indurax.getWMSUrl();
-        final Integer year = indurax.getYear(); // null bei year -> Integer.. evtl ungünstig.. evtl. anders lösen
-        final DoubleRange range = indurax.getRange();
-        final Double sedimentHeight = indurax.getSedimentHeight();
+        final Integer year = indurax.getYear(); // null bei year -> Integer
         final String zonesRaw = indurax.getVegZones();
         final List<VegetationZone> zones = VegetationZone.parse(zonesRaw);
-
-        final InundationDurationCalculationResults results = new InundationDurationCalculationResults(calcModeLabel, user, riverInfo, calcRange);
-
-        final Collection<ResultRow> rows = new ArrayList<>();
-
-        final ResultRow row1 = ResultRow.create(). //
-                putValue(GeneralResultType.station, 88). //
-                putValue(SInfoResultType.discharge, 100). //
-                putValue(SInfoResultType.waterlevel, 2). //
-                putValue(SInfoResultType.gaugeLabel, "Torgau");
+        final String scenarioUrl = indurax.getWMSScenarioUrl();
+        final String scenarioStr = String.valueOf(indurax.getDwspl());
 
-        rows.add(row1);
-
-        final ResultRow row2 = ResultRow.create(). //
-                putValue(SInfoResultType.discharge, 200). //
-                putValue(SInfoResultType.waterlevel, 3). //
-                putValue(SInfoResultType.gaugeLabel, "Zollenspieker");
+        // TODO: add vegetationzone-values as parameter to url and use this url as veg'zone'url
 
-        rows.add(row2);
+        final boolean isUseScenario = indurax.getIsUseScenario();
+        final Integer[] mittelStartEndYears = indurax.mittelStartEndYears();
+        final InundationDurationCalculationResult result = new InundationDurationCalculationResult();
 
-        final InundationDurationCalculationResult result = new InundationDurationCalculationResult("Ergebnis 1", null, rows);
+        final String rangeDuration = year != null ? String.valueOf(year)
+                : new StringBuilder().append(String.valueOf(mittelStartEndYears[0])).append("-").append(mittelStartEndYears[1]).toString();
 
-        results.addResult(result, problems);
+        result.addLayer(Resources.getMsg(this.context.getMeta(), "uinfo.export.url.inundationduration.inundationduration", new Object[] { rangeDuration }), url,
+                true);
+        // TODO: add vegetationzone-values as parameter to url and use this url as veg'zone'url
+        result.addLayer(Resources.getMsg(this.context.getMeta(), "uinfo.export.url.inundationduration.vegetation", new Object[] { rangeDuration }), url, false);
+        if (isUseScenario) {
+            result.addLayer(
+                    Resources.getMsg(this.context.getMeta(), "uinfo.export.url.inundationduration.scenario", new Object[] { rangeDuration, scenarioStr }),
+                    scenarioUrl, true);
+            // TODO: add vegetationzone-values as parameter to url and use this url as veg'zone'url
+            result.addLayer(Resources.getMsg(this.context.getMeta(), "uinfo.export.url.inundationduration.vegetation_scenario",
+                    new Object[] { rangeDuration, scenarioStr }), scenarioUrl, false);
+        }
 
-        return new CalculationResult(results, problems);
+        return new CalculationResult(result, problems);
     }
 }
\ No newline at end of file

http://dive4elements.wald.intevation.org