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() {


Reply via email to