Mercurial > dive4elements > river
view artifacts/src/main/java/org/dive4elements/river/artifacts/access/ExtremeAccess.java @ 7201:3aaacdedf360
issue1435: Added new sediment.density facet type.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Mon, 30 Sep 2013 17:29:26 +0200 |
parents | 29dc6b6e7199 |
children | e4606eae8ea5 |
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde * Software engineering by Intevation GmbH * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.artifacts.access; import org.dive4elements.river.artifacts.D4EArtifact; import org.dive4elements.river.artifacts.model.RangeWithValues; import org.dive4elements.river.utils.DoubleUtil; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; /** Access data used for extreme value analysis. */ public class ExtremeAccess extends RangeAccess { /** Our private logger. */ private static Logger logger = Logger.getLogger(ExtremeAccess.class); protected Long start; protected Long end; protected Double percent; protected String function; protected List<RangeWithValues> ranges; public ExtremeAccess(D4EArtifact artifact) { super(artifact); } /** Returns the percent given. */ public Double getPercent() { if (percent == null) { percent = getDouble("percent"); } if (logger.isDebugEnabled()) { logger.debug("percent: '" + percent + "'"); } return percent; } public String getFunction() { if (function == null) { function = getString("function"); } if (logger.isDebugEnabled()) { logger.debug("function: '" + function + "'"); } return function; } /** Find first RangeWithValues for which the given location * is within the range and return its values. * @return values of first suitable rangewithvalues or null. */ public double[] getValuesForRange(double location) { logger.debug("ExtemeAcces.getValuesForRange"); for (RangeWithValues rangeValues: getRanges()) { if (rangeValues.inside(location)) { return rangeValues.getValues(); } } return null; } public List<RangeWithValues> getRanges() { if (ranges == null) { String rangesS = getString("ranges"); if (rangesS == null) { return null; } ranges = new ArrayList<RangeWithValues>(); DoubleUtil.parseSegments(rangesS, new DoubleUtil.SegmentCallback() { @Override public void newSegment(double from, double to, double [] values) { ranges.add(new RangeWithValues(from, to, values)); } }); } if (logger.isDebugEnabled()) { logger.debug("ranges: " + ranges); } return ranges; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :