Mercurial > dive4elements > river
changeset 4850:c9a27912840d
RangeAccess: Add accidentally omitted implementation of getLocations from FLYSUtils.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 23 Jan 2013 12:10:47 +0100 |
parents | f86c8d75fd85 |
children | a1ce76091ade |
files | flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/RangeAccess.java |
diffstat | 1 files changed, 44 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/RangeAccess.java Wed Jan 23 10:43:27 2013 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/RangeAccess.java Wed Jan 23 12:10:47 2013 +0100 @@ -2,10 +2,15 @@ import org.apache.log4j.Logger; +import gnu.trove.TDoubleArrayList; + import de.intevation.artifacts.CallContext; import de.intevation.flys.artifacts.FLYSArtifact; +import de.intevation.flys.artifacts.WINFOArtifact; + import de.intevation.flys.utils.FLYSUtils; + /** For the moment, light-weight wrapper around FLYSUtils. */ // TODO employ 'Caching' like other Accesses, remove usage of FLYSUtils. public class RangeAccess @@ -28,6 +33,45 @@ } + /** + * Return sorted array of locations at which stuff was calculated + * (from ld_locations data), null if not parameterized this way. + */ + public double[] getLocations() { + String locationStr = getString("ld_locations"); + + if (locationStr == null || locationStr.length() == 0) { + if (getArtifact() instanceof WINFOArtifact) { + WINFOArtifact winfo = (WINFOArtifact) getArtifact(); + if (winfo.getReferenceStartKm() != null && winfo.getReferenceEndKms() != null) { + return new double[] + { + winfo.getReferenceStartKm().doubleValue(), + winfo.getReferenceEndKms()[0] + }; + } + } + return null; + } + + String[] tmp = locationStr.split(" "); + TDoubleArrayList locations = new TDoubleArrayList(); + + for (String l: tmp) { + try { + locations.add(Double.parseDouble(l)); + } + catch (NumberFormatException nfe) { + logger.debug(nfe.getLocalizedMessage(), nfe); + } + } + + locations.sort(); + + return locations.toNativeArray(); + } + + /** Return ld_from data (in km). */ public double getFrom() { if (from == null) { @@ -83,14 +127,5 @@ public double[] getKmFromTo() { return FLYSUtils.getKmFromTo(this.getArtifact()); } - - - /** - * Return sorted array of locations at which stuff was calculated - * (from ld_locations data), null if not parameterized this way. - */ - public double[] getLocations() { - return FLYSUtils.getLocations(this.getArtifact()); - } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :