Author: nextgens
Date: 2008-07-17 09:45:09 +0000 (Thu, 17 Jul 2008)
New Revision: 21156
Modified:
trunk/freenet/src/freenet/support/SimpleFieldSet.java
trunk/freenet/test/freenet/support/SimpleFieldSetTest.java
Log:
SimpleFieldSet: add methods to handle double[] and update the unit test
Modified: trunk/freenet/src/freenet/support/SimpleFieldSet.java
===================================================================
--- trunk/freenet/src/freenet/support/SimpleFieldSet.java 2008-07-16
22:39:17 UTC (rev 21155)
+++ trunk/freenet/src/freenet/support/SimpleFieldSet.java 2008-07-17
09:45:09 UTC (rev 21156)
@@ -845,6 +845,12 @@
for(int i=0;i<value.length;i++)
putAppend(key, Integer.toString(value[i]));
}
+
+ public void put(String key, double[] value) {
+ removeValue(key);
+ for(double v : value)
+ putAppend(key, String.valueOf(v));
+ }
public int[] getIntArray(String key) {
String[] strings = getAll(key);
@@ -860,6 +866,22 @@
}
return ret;
}
+
+ public double[] getDoubleArray(String key) {
+ String[] strings = getAll(key);
+ if(strings == null) return null;
+ double[] ret = new double[strings.length];
+ for(int i=0;i<strings.length;i++) {
+ try {
+ ret[i] = Double.valueOf(strings[i]);
+ } catch(NumberFormatException e) {
+ Logger.error(this, "Cannot parse "+strings[i]+"
: "+e,e);
+ return null;
+ }
+ }
+
+ return ret;
+ }
public void putOverwrite(String key, String[] strings) {
putOverwrite(key, unsplit(strings));
Modified: trunk/freenet/test/freenet/support/SimpleFieldSetTest.java
===================================================================
--- trunk/freenet/test/freenet/support/SimpleFieldSetTest.java 2008-07-16
22:39:17 UTC (rev 21155)
+++ trunk/freenet/test/freenet/support/SimpleFieldSetTest.java 2008-07-17
09:45:09 UTC (rev 21156)
@@ -620,6 +620,20 @@
}
/**
+ * Tests the getDoubleArray(String) method
+ */
+ public void testGetDoubleArray() {
+ SimpleFieldSet methodSFS = new SimpleFieldSet(true);
+ String keyPrefix = "foo";
+ for (int i = 0; i<15; i++)
+
methodSFS.putAppend(keyPrefix,String.valueOf((double)i));
+ double[] result = methodSFS.getDoubleArray(keyPrefix);
+ for (int i = 0; i<15; i++)
+ assertTrue(result[i]== ((double)i));
+
+ }
+
+ /**
* Tests removeValue(String) method
*/
public void testRemoveValue() {