Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java @ 9069:1ffd38826175
access uinfo.vegetationzones+inundation_duration
author | gernotbelger |
---|---|
date | Tue, 15 May 2018 12:00:26 +0200 |
parents | fb9430250899 |
children | 611a523fc42f |
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.ArrayList; import java.util.Collection; 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.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; 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 River river = access.getRiver(); final DoubleRange calcRange = null; final RiverInfo riverInfo = new RiverInfo(river); final InundationDurationAccess indurax = new InundationDurationAccess(uinfo); final int[] totalEpoch = indurax.getTotalEpoch(); 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 InundationDurationCalculationResults results = new InundationDurationCalculationResults(calcModeLabel, user, riverInfo, calcRange); final Collection<ResultRow> rows = new ArrayList<>(); final ResultRow row1 = ResultRow.create(). // putValue(SInfoResultType.discharge, 100). // putValue(SInfoResultType.waterlevel, 2). // putValue(SInfoResultType.gaugeLabel, "Torgau"); rows.add(row1); final ResultRow row2 = ResultRow.create(). // putValue(SInfoResultType.discharge, 200). // putValue(SInfoResultType.waterlevel, 3). // putValue(SInfoResultType.gaugeLabel, "Zollenspieker"); rows.add(row2); final InundationDurationCalculationResult result = new InundationDurationCalculationResult("Ergebnis 1", null, rows); results.addResult(result, problems); return new CalculationResult(results, problems); } }