# HG changeset patch # User Felix Wolfsteller # Date 1358942292 -3600 # Node ID a0949259181e46382604493aa486450fa30e6a9d # Parent 9790a284246c0e940815a43173fbd6049f550a15 RangeAccess.getKmRange: Extracted from FLYSUtils. diff -r 9790a284246c -r a0949259181e flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/RangeAccess.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/RangeAccess.java Wed Jan 23 12:27:00 2013 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/RangeAccess.java Wed Jan 23 12:58:12 2013 +0100 @@ -3,7 +3,6 @@ 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; @@ -149,7 +148,34 @@ * (ld_from/to vs ld_locations). */ public double[] getKmRange() { - return FLYSUtils.getKmRange(this.getArtifact()); + // TODO store kmRange in field. + switch (getKmRangeMode()) { + case RANGE: { + return getKmFromTo(); + } + + case LOCATIONS: { + double[] locs = getLocations(); + // if no locations, nPE. + if (locs == null) { + logger.warn("no locations to get km range from."); + return new double[] { Double.NaN, Double.NaN }; + } + return new double[] { locs[0], locs[locs.length-1] }; + } + + case NONE: { + double[] locs = getLocations(); + if (locs != null) { + return new double[] { locs[0], locs[locs.length-1] }; + } + else { + return getKmFromTo(); + } + } + } + + return new double[] { Double.NaN, Double.NaN }; }