gernotbelger@9313: /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9313: * Software engineering by gernotbelger@9313: * Björnsen Beratende Ingenieure GmbH gernotbelger@9313: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9313: * gernotbelger@9313: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9313: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9313: * documentation coming with Dive4Elements River for details. gernotbelger@9313: */ gernotbelger@9313: package org.dive4elements.river.artifacts.bundu.bezugswst; gernotbelger@9313: gernotbelger@9313: import java.util.ArrayList; gernotbelger@9313: import java.util.List; gernotbelger@9313: gernotbelger@9313: import org.dive4elements.artifacts.CallContext; gernotbelger@9313: import org.dive4elements.river.artifacts.bundu.BUNDUArtifact; gernotbelger@9318: import org.dive4elements.river.artifacts.bundu.BunduResultType; gernotbelger@9313: import org.dive4elements.river.artifacts.common.GeneralResultType; gernotbelger@9313: import org.dive4elements.river.artifacts.common.ResultRow; gernotbelger@9313: import org.dive4elements.river.artifacts.model.CalculationResult; gernotbelger@9313: import org.dive4elements.river.artifacts.resources.Resources; gernotbelger@9323: import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo; gernotbelger@9313: import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils; gernotbelger@9313: import org.dive4elements.river.artifacts.sinfo.util.RiverInfo; gernotbelger@9323: import org.dive4elements.river.artifacts.sinfo.util.WstInfo; gernotbelger@9313: import org.dive4elements.river.model.River; gernotbelger@9313: gernotbelger@9313: class BezugswstCalculation { gernotbelger@9313: gernotbelger@9313: // private static Logger log = Logger.getLogger(FloodDurationCalculation.class); gernotbelger@9313: gernotbelger@9313: private final CallContext context; gernotbelger@9313: gernotbelger@9313: public BezugswstCalculation(final CallContext context) { gernotbelger@9313: this.context = context; gernotbelger@9313: } gernotbelger@9313: gernotbelger@9313: public CalculationResult calculate(final BUNDUArtifact bunduartifact) { gernotbelger@9313: gernotbelger@9313: final String user = CalculationUtils.findArtifactUser(this.context, bunduartifact); gernotbelger@9313: gernotbelger@9313: /* access input data */ gernotbelger@9313: final BunduAccess access = new BunduAccess(bunduartifact); gernotbelger@9313: gernotbelger@9313: final River river = access.getRiver(); gernotbelger@9313: final RiverInfo riverInfo = new RiverInfo(river); gernotbelger@9313: final String calcModeLabel = Resources.getMsg(this.context.getMeta(), "bundu_bezugswst"); gernotbelger@9313: final BezugswstCalculationResults results = new BezugswstCalculationResults(calcModeLabel, user, riverInfo, access.getRange()); gernotbelger@9313: gernotbelger@9323: // TODO: get wst, sounding for river gernotbelger@9323: final WstInfo wstInfo = null; gernotbelger@9323: final BedHeightInfo sounding = null; gernotbelger@9323: // final int wspYear = waterlevel.getYear(); gernotbelger@9323: // final WstInfo wstInfo = new WstInfo(wspLabel, wspYear, riverInfo.getReferenceGauge()); gernotbelger@9323: final String function = access.getFunction(); gernotbelger@9323: final boolean preprocessing = access.getPreprocessing();// nullpointer dürfen nicht entstehen; Fehler läge woanders gernotbelger@9323: final int startYear = access.getStartYear(); gernotbelger@9323: final int endYear = access.getBezugsJahr(); gernotbelger@9323: final Integer ud = access.getUd(); gernotbelger@9323: final double[] qs = access.getQs(); gernotbelger@9323: final Double missingVolFrom = access.getMissingVolFrom(); gernotbelger@9323: final Double missingVolTo = access.getMissingVolTo(); gernotbelger@9313: final List list = new ArrayList<>(); gernotbelger@9313: final ResultRow row = ResultRow.create(); gernotbelger@9313: row.putValue(GeneralResultType.station, 666.666); gernotbelger@9318: row.putValue(BunduResultType.bezugswst, 22.15); gernotbelger@9313: row.putValue(GeneralResultType.dischargeQwithUnit, 77.666); gernotbelger@9318: row.putValue(GeneralResultType.waterlevelLabel, "GLQ"); gernotbelger@9318: row.putValue(GeneralResultType.gaugeLabel, "Bonn"); gernotbelger@9318: row.putValue(GeneralResultType.location, "keine Lage"); gernotbelger@9313: list.add(row); gernotbelger@9313: gernotbelger@9323: final BezugswstCalculationResult result = new BezugswstCalculationResult("label? was fürn label?", list, sounding, wstInfo, function, preprocessing, gernotbelger@9323: startYear, endYear, ud, qs, missingVolFrom, missingVolTo); gernotbelger@9313: results.addResult(result, null); gernotbelger@9313: return new CalculationResult(results, null);// problems); gernotbelger@9313: } gernotbelger@9313: gernotbelger@9313: /** gernotbelger@9313: * Calculates one W-MSH differences pair. gernotbelger@9313: * gernotbelger@9313: * @param infoProvider gernotbelger@9313: */ gernotbelger@9313: gernotbelger@9313: }