gernotbelger@8946: /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@8946: * Software engineering by gernotbelger@8946: * Björnsen Beratende Ingenieure GmbH gernotbelger@8946: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@8946: * gernotbelger@8946: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@8946: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@8946: * documentation coming with Dive4Elements River for details. gernotbelger@8946: */ gernotbelger@8946: gernotbelger@8946: package org.dive4elements.river.artifacts.sinfo.flowdepthminmax; gernotbelger@8946: gernotbelger@8946: import java.util.Collection; gernotbelger@8946: gernotbelger@8946: import org.apache.commons.lang.math.DoubleRange; gernotbelger@8946: import org.dive4elements.river.artifacts.access.RangeAccess; gernotbelger@8946: import org.dive4elements.river.artifacts.sinfo.SINFOArtifact; gernotbelger@8946: import org.dive4elements.river.artifacts.sinfo.SinfoCalcMode; gernotbelger@8946: import org.dive4elements.river.artifacts.sinfo.flowdepth.WstSoundingIdPair; gernotbelger@8946: gernotbelger@8946: /** gernotbelger@8946: * Access to the flow depth calculation type specific SInfo artifact data. gernotbelger@8946: * REMARK: this class is NOT intended to be hold in the results (or anywhere else), in order to avoid a permanent gernotbelger@8946: * reference to the artifact instance. gernotbelger@8946: * Hence we do NOT cache any data. gernotbelger@8946: * gernotbelger@8946: * @author Gernot Belger gernotbelger@8946: */ gernotbelger@8946: final class FlowDepthMinMaxAccess extends RangeAccess { gernotbelger@8946: gernotbelger@8946: private static final String FIELD_DIFFIDS = "diffids"; gernotbelger@8946: gernotbelger@8946: public FlowDepthMinMaxAccess(final SINFOArtifact artifact) { gernotbelger@8946: super(artifact); gernotbelger@8946: gernotbelger@8946: /* assert calculation mode */ gernotbelger@8946: final SinfoCalcMode calculationMode = artifact.getCalculationMode(); gernotbelger@8946: assert (calculationMode == SinfoCalcMode.sinfo_calc_flow_depth_minmax); gernotbelger@8946: } gernotbelger@8946: gernotbelger@8946: public DoubleRange getRange() { gernotbelger@8946: final double from = getFrom(); gernotbelger@8946: final double to = getTo(); gernotbelger@8946: return new DoubleRange(from, to); gernotbelger@8946: } gernotbelger@8946: gernotbelger@8993: public Collection getMinMaxPairs() { gernotbelger@8946: final String diffids = getString(FIELD_DIFFIDS); gernotbelger@8993: return WstSoundingIdPair.parsePairs(diffids); gernotbelger@8946: } gernotbelger@8946: }