gernotbelger@9062: /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9062: * Software engineering by gernotbelger@9062: * Björnsen Beratende Ingenieure GmbH gernotbelger@9062: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9062: * gernotbelger@9062: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9062: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9062: * documentation coming with Dive4Elements River for details. gernotbelger@9062: */ gernotbelger@9062: gernotbelger@9062: package org.dive4elements.river.artifacts.uinfo.salix; gernotbelger@9062: gernotbelger@9062: import org.dive4elements.river.artifacts.access.RangeAccess; gernotbelger@9062: import org.dive4elements.river.artifacts.uinfo.UINFOArtifact; gernotbelger@9062: import org.dive4elements.river.artifacts.uinfo.UinfoCalcMode; gernotbelger@9062: gernotbelger@9062: /** gernotbelger@9062: * Access to the flow depth calculation type specific SInfo artifact data. gernotbelger@9062: * REMARK: this class is NOT intended to be hold in the results (or anywhere else), in order to avoid a permanent gernotbelger@9062: * reference to the artifact instance. gernotbelger@9062: * Hence we do NOT cache any data. gernotbelger@9062: * gernotbelger@9062: * @author Gernot Belger gernotbelger@9062: */ gernotbelger@9062: final class SalixLineAccess extends RangeAccess { gernotbelger@9062: gernotbelger@9062: static final String FIELD_DIFFID_CURRENT = "diffid_current"; gernotbelger@9062: static final String FIELD_DIFFID_HIST = "diffid_historical"; gernotbelger@9068: // calculation_mode gernotbelger@9068: // ld_from , ld_to gernotbelger@9068: // use_scenario (boolean) gernotbelger@9068: // ld_from_part; ld_to_part gernotbelger@9068: // scenario_selection (mögliche Werte:"scenarioType.option1" "scenarioType.option2" "scenarioType.option3" gernotbelger@9062: gernotbelger@9062: public SalixLineAccess(final UINFOArtifact artifact) { gernotbelger@9062: super(artifact); gernotbelger@9062: gernotbelger@9062: /* assert calculation mode */ gernotbelger@9062: final UinfoCalcMode calculationMode = artifact.getCalculationMode(); gernotbelger@9062: assert (calculationMode == UinfoCalcMode.uinfo_salix_line); gernotbelger@9062: } gernotbelger@9062: gernotbelger@9068: public boolean getUseScenario() { gernotbelger@9068: return super.getBoolean("use_scenario"); gernotbelger@9068: } gernotbelger@9068: gernotbelger@9068: public String getScenario() { gernotbelger@9068: if (getUseScenario()) { gernotbelger@9068: return getString("scenario_selection"); gernotbelger@9068: } gernotbelger@9068: return null; gernotbelger@9068: } gernotbelger@9068: gernotbelger@9222: public Double getFromPart() { gernotbelger@9222: return getDouble("ld_from_part"); gernotbelger@9068: } gernotbelger@9068: gernotbelger@9222: public Double getToPart() { gernotbelger@9222: return getDouble("ld_to_part"); gernotbelger@9068: } gernotbelger@9243: gernotbelger@9243: public int[] getRegionalScenarioIntegers() { gernotbelger@9243: // super.getIntArray("sedimentheight"); DOES NOT WORK! gernotbelger@9243: final String ints = super.getString("sedimentheight"); gernotbelger@9243: if (ints != null) { gernotbelger@9243: final String[] intsSplit = ints.split(" "); gernotbelger@9243: final int[] values = new int[intsSplit.length]; gernotbelger@9243: for (int i = 0; i < intsSplit.length; i++) { gernotbelger@9243: values[i] = Integer.valueOf(intsSplit[i]); gernotbelger@9243: } gernotbelger@9243: return values; gernotbelger@9243: } gernotbelger@9243: return null; gernotbelger@9243: } gernotbelger@9243: gernotbelger@9243: public String getSupraRegionalString() { gernotbelger@9243: return super.getString("supraregional_table"); gernotbelger@9243: } gernotbelger@9246: gernotbelger@9246: public Integer getYear() { gernotbelger@9246: if (getString("ye_select").equals("state.uinfo.year")) { gernotbelger@9246: return super.getInteger("singleyear"); gernotbelger@9246: } gernotbelger@9246: return null; gernotbelger@9246: } gernotbelger@9246: gernotbelger@9246: public Integer getEpoch() { gernotbelger@9246: if (getString("ye_select").equals("state.uinfo.epoch")) { gernotbelger@9246: return super.getInteger("singleepoch"); gernotbelger@9246: } gernotbelger@9246: return null; gernotbelger@9246: } gernotbelger@9062: }