# HG changeset patch # User Sascha L. Teichmann # Date 1359623896 -3600 # Node ID 1e379598c47a4b12feab5123e1a09bfc9c671f29 # Parent 57609ffb3843fbc25a3e6165b526e8e187a4e973 Fixed dc:fromValue/toValue (now handles values in locations as numbers). diff -r 57609ffb3843 -r 1e379598c47a flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/templating/FunctionResolver.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/templating/FunctionResolver.java Thu Jan 31 09:29:24 2013 +0100 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/datacage/templating/FunctionResolver.java Thu Jan 31 10:18:16 2013 +0100 @@ -101,11 +101,23 @@ if (!(locations instanceof String)) { return -Double.MAX_VALUE; } - else { - String loc = ((String)locations).replace(" ", ""); - String[] split = loc.split(","); - Arrays.sort(split); - return split[0]; + String loc = ((String)locations).replace(" ", ""); + String[] split = loc.split(","); + if (split.length < 1) { + return -Double.MAX_VALUE; + } + try { + double min = Double.parseDouble(split[0]); + for (int i = 1; i < split.length; ++i) { + double v = Double.parseDouble(split[i]); + if (v < min) { + min = v; + } + } + return min; + } + catch (NumberFormatException nfe) { + return -Double.MAX_VALUE; } } else if (mode.equals("distance")) { @@ -145,11 +157,23 @@ if (!(locations instanceof String)) { return Double.MAX_VALUE; } - else { + try { String loc = ((String)locations).replace(" ", ""); String[] split = loc.split(","); - Arrays.sort(split); - return split[split.length - 1]; + if (split.length < 1) { + return Double.MAX_VALUE; + } + double max = Double.parseDouble(split[0]); + for (int i = 1; i < split.length; ++i) { + double v = Double.parseDouble(split[i]); + if (v > max) { + max = v; + } + } + return max; + } + catch (NumberFormatException nfe) { + return Double.MAX_VALUE; } } else if (mode.equals("distance")) {