gernotbelger@9267: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde gernotbelger@9267: * Software engineering by Intevation GmbH gernotbelger@9267: * gernotbelger@9267: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9267: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9267: * documentation coming with Dive4Elements River for details. gernotbelger@9267: */ gernotbelger@9267: gernotbelger@9267: package org.dive4elements.river.artifacts.bundu.bezugswst; gernotbelger@9267: gernotbelger@9267: import org.apache.log4j.Logger; gernotbelger@9267: import org.dive4elements.river.artifacts.D4EArtifact; gernotbelger@9267: import org.dive4elements.river.artifacts.access.FixAnalysisAccess; mschaefer@9432: import org.dive4elements.river.artifacts.states.SoundingsSelect; gernotbelger@9267: gernotbelger@9267: public class BunduAccess extends FixAnalysisAccess { gernotbelger@9267: gernotbelger@9267: private static Logger log = Logger.getLogger(BunduAccess.class); gernotbelger@9267: gernotbelger@9267: public BunduAccess(final D4EArtifact artifact) { gernotbelger@9267: super(artifact); gernotbelger@9267: } gernotbelger@9267: gernotbelger@9267: public boolean isAutoSelect() { gernotbelger@9267: final String fixChoice = this.artifact.getDataAsString("fix_choice"); gernotbelger@9366: if (fixChoice != null && fixChoice.equals("state.bundu.wst.fix.auto")) { gernotbelger@9267: return true; gernotbelger@9267: } gernotbelger@9267: return false; gernotbelger@9267: } gernotbelger@9267: gernotbelger@9267: public Integer getBezugsJahr() { gernotbelger@9267: return this.artifact.getDataAsInteger("singleyear"); gernotbelger@9267: } gernotbelger@9267: gernotbelger@9267: public int[] getEventsTemp() { gernotbelger@9267: return getIntArray("events_temp"); gernotbelger@9267: } gernotbelger@9267: gernotbelger@9277: public int getQSeriesLength() { gernotbelger@9277: return this.artifact.getDataAsInteger("year_input_q_series"); gernotbelger@9277: } gernotbelger@9277: gernotbelger@9323: public int getStartYear() { mschaefer@9396: return this.getBezugsJahr() - this.getQSeriesLength() + 1; gernotbelger@9323: } gernotbelger@9323: gernotbelger@9323: public Integer getUd() { gernotbelger@9323: if (getUd_Q_mode().equals("UD")) gernotbelger@9323: return getInteger("bundu.wst.ud_value"); gernotbelger@9525: gernotbelger@9525: return null; gernotbelger@9323: } gernotbelger@9323: gernotbelger@9323: @Override gernotbelger@9323: public double[] getQs() { gernotbelger@9323: if (getUd_Q_mode().equals("Q")) gernotbelger@9323: return super.getQs(); gernotbelger@9525: gernotbelger@9525: return null; gernotbelger@9323: } gernotbelger@9323: gernotbelger@9323: private String getUd_Q_mode() { gernotbelger@9323: return getString("bundu.wst.mode"); gernotbelger@9323: } gernotbelger@9323: gernotbelger@9323: public Double getMissingVolFrom() { gernotbelger@9495: if (isCalculateMissingVolume()) gernotbelger@9323: return getDouble("ld_from_part"); gernotbelger@9525: gernotbelger@9525: return null; gernotbelger@9323: } gernotbelger@9323: gernotbelger@9323: public Double getMissingVolTo() { gernotbelger@9495: if (isCalculateMissingVolume()) gernotbelger@9323: return getDouble("ld_to_part"); gernotbelger@9525: gernotbelger@9525: return null; gernotbelger@9323: } gernotbelger@9323: gernotbelger@9495: public boolean isCalculateMissingVolume() { gernotbelger@9323: return getBoolean("missing_volume"); gernotbelger@9323: } gernotbelger@9323: gernotbelger@9465: public Integer getBedHeightID() { mschaefer@9432: mschaefer@9432: final String data = getString("soundings"); mschaefer@9432: gernotbelger@9495: if (data == null || !isCalculateMissingVolume()) { mschaefer@9432: log.warn("No 'soundings' parameter specified!"); gernotbelger@9465: return null; mschaefer@9432: } mschaefer@9432: gernotbelger@9525: log.debug("getBedHeightIDs(): data=" + data); mschaefer@9432: mschaefer@9432: int singleID = 0; mschaefer@9432: mschaefer@9432: if (data.indexOf(SoundingsSelect.PREFIX_SINGLE) >= 0) { mschaefer@9432: final String tmp = data.replace(SoundingsSelect.PREFIX_SINGLE, ""); mschaefer@9432: try { mschaefer@9432: singleID = Integer.parseInt(tmp); mschaefer@9432: } mschaefer@9432: catch (final NumberFormatException nfe) { mschaefer@9432: log.warn("Cannot parse int from string: '" + tmp + "'"); mschaefer@9432: } mschaefer@9432: } mschaefer@9432: return singleID; mschaefer@9432: } gernotbelger@9525: }