Mercurial > dive4elements > river
comparison flys-client/src/main/java/org/dive4elements/river/client/shared/DoubleUtils.java @ 5834:f507086aa94b
Repaired internal references.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 12:31:32 +0200 |
parents | flys-client/src/main/java/de/intevation/flys/client/shared/DoubleUtils.java@51ed89b754ae |
children | 821a02bbfb4e |
comparison
equal
deleted
inserted
replaced
5833:a2bdc0f524e8 | 5834:f507086aa94b |
---|---|
1 package de.intevation.flys.client.shared; | |
2 | |
3 | |
4 public final class DoubleUtils { | |
5 | |
6 public static final String DEFAULT_DELIM = " "; | |
7 | |
8 | |
9 private DoubleUtils() { | |
10 } | |
11 | |
12 | |
13 public static Double getDouble(String value) { | |
14 try { | |
15 return Double.valueOf(value); | |
16 } | |
17 catch (NumberFormatException nfe) { | |
18 // do nothing | |
19 } | |
20 | |
21 return null; | |
22 } | |
23 | |
24 | |
25 public static double[] getMinMax(String value) { | |
26 return getMinMax(value, DEFAULT_DELIM); | |
27 } | |
28 | |
29 | |
30 public static double[] getMinMax(String value, String delim) { | |
31 if (value == null) { | |
32 return null; | |
33 } | |
34 | |
35 String[] values = value.split(delim); | |
36 | |
37 int len = values != null ? values.length : 0; | |
38 double[] mm = new double[] { Double.MAX_VALUE, -Double.MAX_VALUE }; | |
39 | |
40 for (int i = 0; i < len; i++) { | |
41 Double d = getDouble(values[i]); | |
42 | |
43 if (d != null) { | |
44 mm[0] = mm[0] < d ? mm[0] : d; | |
45 mm[1] = mm[1] > d ? mm[1] : d; | |
46 } | |
47 } | |
48 | |
49 return mm[0] != Double.MAX_VALUE && mm[1] != -Double.MAX_VALUE | |
50 ? mm | |
51 : null; | |
52 } | |
53 | |
54 /** toIndex is not inclusive, fromIndex is. */ | |
55 static void fill(double[] array, int fromIndex, int toIndex, double val) { | |
56 for (int i = fromIndex; i < toIndex; i++) { | |
57 array[i] = val; | |
58 } | |
59 } | |
60 | |
61 /** @see java.util.Arrays.copyOf */ | |
62 public static double[] copyOf(double[] toCopy, int newLen) { | |
63 double[] nArray = new double[newLen]; | |
64 | |
65 if (toCopy == null) { | |
66 fill(nArray, 0, nArray.length, 0d); | |
67 return nArray; | |
68 } | |
69 | |
70 int goTo = (newLen < toCopy.length) | |
71 ? newLen | |
72 : toCopy.length; | |
73 | |
74 for (int i = 0; i < goTo; i++) { | |
75 nArray[i] = toCopy[i]; | |
76 } | |
77 fill (nArray, goTo, nArray.length, 0d); | |
78 return nArray; | |
79 } | |
80 } | |
81 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |