Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java @ 9369:1a4d2ce77423
radio choice fix
author | gernotbelger |
---|---|
date | Thu, 02 Aug 2018 17:39:13 +0200 |
parents | 0633f963c5be |
children | bc9a45d2b1fa |
line wrap: on
line source
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde * Software engineering by * Björnsen Beratende Ingenieure GmbH * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.artifacts.uinfo.inundationduration; 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.model.Calculation; import org.dive4elements.river.artifacts.model.CalculationResult; import org.dive4elements.river.artifacts.resources.Resources; import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils; import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; import org.dive4elements.river.artifacts.uinfo.UINFOArtifact; import org.dive4elements.river.artifacts.uinfo.vegetationzones.VegetationZone; import org.dive4elements.river.model.River; /** * @author Domenico Nardi Tironi * */ final class InundationDurationCalculation { private final CallContext context; public InundationDurationCalculation(final CallContext context) { this.context = context; } public CalculationResult calculate(final UINFOArtifact uinfo) { final Calculation problems = new Calculation(); final String calcModeLabel = Resources.getMsg(this.context.getMeta(), uinfo.getCalculationMode().name()); final String user = CalculationUtils.findArtifactUser(this.context, uinfo); final RiverAccess access = new RiverAccess(uinfo); final InundationDurationAccess indurax = new InundationDurationAccess(uinfo); final River river = indurax.getRiver(); 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 final String zonesRaw = indurax.getVegZones(); final List<VegetationZone> zones = VegetationZone.parse(zonesRaw); final String scenarioUrl = indurax.getWMSScenarioUrl(); final String scenarioStr = String.valueOf(indurax.getDwspl()); // TODO: add vegetationzone-values as parameter to url and use this url as veg'zone'url final boolean isUseScenario = indurax.getIsUseScenario(); final Integer[] mittelStartEndYears = indurax.mittelStartEndYears(); final InundationDurationCalculationResult result = new InundationDurationCalculationResult(); final String rangeDuration = year != null ? String.valueOf(year) : new StringBuilder().append(String.valueOf(mittelStartEndYears[0])).append("-").append(mittelStartEndYears[1]).toString(); 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(result, problems); } }