gernotbelger@8914: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@8914: * Software engineering by gernotbelger@8914: * Björnsen Beratende Ingenieure GmbH gernotbelger@8914: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@8914: * gernotbelger@8914: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@8914: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@8914: * documentation coming with Dive4Elements River for details. gernotbelger@8914: */ gernotbelger@8914: package org.dive4elements.river.artifacts.access; gernotbelger@8914: gernotbelger@8914: import org.dive4elements.artifactdatabase.data.StateData; gernotbelger@8914: import org.dive4elements.river.artifacts.D4EArtifact; gernotbelger@8914: import org.dive4elements.river.artifacts.states.ComputationRangeState; gernotbelger@8914: import org.dive4elements.river.utils.DoubleUtil; gernotbelger@8914: gernotbelger@8914: /** gernotbelger@8914: * Access to data handled by {@link ComputationRangeState}. gernotbelger@8914: * gernotbelger@8914: * @author Gernot Belger gernotbelger@8914: */ gernotbelger@8914: public class ComputationRangeAccess extends RangeAccess { gernotbelger@8914: gernotbelger@8914: public ComputationRangeAccess(final D4EArtifact artifact) { gernotbelger@8914: super(artifact); gernotbelger@8914: } gernotbelger@8914: gernotbelger@8914: public double[] getFromToStep() { gernotbelger@8914: gernotbelger@8914: if (!isRange()) gernotbelger@8914: return null; gernotbelger@8914: gernotbelger@8914: final double[] fromTo = getKmRange(); gernotbelger@8914: gernotbelger@8914: if (fromTo == null) gernotbelger@8914: return null; gernotbelger@8914: gernotbelger@8914: final StateData dStep = getArtifact().getData("ld_step"); gernotbelger@8914: if (dStep == null) gernotbelger@8914: return null; gernotbelger@8914: gernotbelger@8914: final double[] result = new double[3]; gernotbelger@8914: result[0] = fromTo[0]; gernotbelger@8914: result[1] = fromTo[1]; gernotbelger@8914: gernotbelger@8914: try { gernotbelger@8914: final String dStepValue = (String) dStep.getValue(); gernotbelger@8914: result[2] = DoubleUtil.round(Double.parseDouble(dStepValue) / 1000d); gernotbelger@8914: return result; gernotbelger@8914: } gernotbelger@8914: catch (final NumberFormatException nfe) { gernotbelger@8914: nfe.printStackTrace(); gernotbelger@8914: return null; gernotbelger@8914: } gernotbelger@8914: } gernotbelger@8914: gernotbelger@8914: public double[] getKms() { gernotbelger@8914: gernotbelger@8914: if (isRange()) gernotbelger@8914: return getKmSteps(); gernotbelger@8914: gernotbelger@8914: return getLocations(); gernotbelger@8914: } gernotbelger@8914: }