ingo@1279: package de.intevation.flys.client.shared; ingo@1279: ingo@1279: ingo@1279: public final class DoubleUtils { ingo@1279: ingo@1279: public static final String DEFAULT_DELIM = " "; ingo@1279: ingo@1279: ingo@1279: private DoubleUtils() { ingo@1279: } ingo@1279: ingo@1279: ingo@1279: public static Double getDouble(String value) { ingo@1279: try { ingo@1279: return Double.valueOf(value); ingo@1279: } ingo@1279: catch (NumberFormatException nfe) { ingo@1279: // do nothing ingo@1279: } ingo@1279: ingo@1279: return null; ingo@1279: } ingo@1279: ingo@1279: ingo@1279: public static double[] getMinMax(String value) { ingo@1279: return getMinMax(value, DEFAULT_DELIM); ingo@1279: } ingo@1279: ingo@1279: ingo@1279: public static double[] getMinMax(String value, String delim) { ingo@1279: if (value == null) { ingo@1279: return null; ingo@1279: } ingo@1279: ingo@1279: String[] values = value.split(delim); ingo@1279: ingo@1279: int len = values != null ? values.length : 0; ingo@1279: double[] mm = new double[] { Double.MAX_VALUE, -Double.MAX_VALUE }; ingo@1279: ingo@1279: for (int i = 0; i < len; i++) { ingo@1279: Double d = getDouble(values[i]); ingo@1279: ingo@1279: if (d != null) { ingo@1279: mm[0] = mm[0] < d ? mm[0] : d; ingo@1279: mm[1] = mm[1] > d ? mm[1] : d; ingo@1279: } ingo@1279: } ingo@1279: ingo@1279: return mm[0] != Double.MAX_VALUE && mm[1] != -Double.MAX_VALUE ingo@1279: ? mm ingo@1279: : null; ingo@1279: } ingo@1279: } ingo@1279: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :