Author: toad
Date: 2007-06-15 15:42:57 +0000 (Fri, 15 Jun 2007)
New Revision: 13603

Modified:
   trunk/freenet/src/freenet/support/SimpleFieldSet.java
Log:
Add putAllOverwrite

Modified: trunk/freenet/src/freenet/support/SimpleFieldSet.java
===================================================================
--- trunk/freenet/src/freenet/support/SimpleFieldSet.java       2007-06-14 
16:59:46 UTC (rev 13602)
+++ trunk/freenet/src/freenet/support/SimpleFieldSet.java       2007-06-15 
15:42:57 UTC (rev 13603)
@@ -204,6 +204,29 @@
        }

     /**
+     * Put contents of a fieldset, overwrite old values.
+     */
+    public void putAllOverwrite(SimpleFieldSet fs) {
+       Iterator i = fs.values.keySet().iterator();
+       while(i.hasNext()) {
+               String key = (String) i.next();
+               String hisVal = (String) fs.values.get(key);
+               values.put(key, hisVal); // overwrite old
+       }
+       i = fs.subsets.keySet().iterator();
+       while(i.hasNext()) {
+               String key = (String) i.next();
+               SimpleFieldSet hisFS = (SimpleFieldSet) fs.subsets.get(key);
+               SimpleFieldSet myFS = (SimpleFieldSet) subsets.get(key);
+               if(myFS != null) {
+                       myFS.putAllOverwrite(hisFS);
+               } else {
+                       subsets.put(key, hisFS);
+               }
+       }
+    }
+    
+    /**
      * Set a key to a value. If the value already exists, throw 
IllegalStateException.
      * @param key The key.
      * @param value The value.


Reply via email to