Revision: 5908
Author: [email protected]
Date: Thu Aug  6 14:35:18 2009
Log: Add Sets.addAll() utility method.
Update to Maps.pulAll() per Scott.

Patch by: bobv
Review by: scottb
http://code.google.com/p/google-web-toolkit/source/detail?r=5908

Modified:
  /trunk/dev/core/src/com/google/gwt/dev/util/collect/Maps.java
  /trunk/dev/core/src/com/google/gwt/dev/util/collect/Sets.java

=======================================
--- /trunk/dev/core/src/com/google/gwt/dev/util/collect/Maps.java       Fri Jul 
 
31 23:49:15 2009
+++ /trunk/dev/core/src/com/google/gwt/dev/util/collect/Maps.java       Thu Aug 
  
6 14:35:18 2009
@@ -109,7 +109,7 @@
              K key = map.keySet().iterator().next();
              result.put(key, map.get(key));
              result.putAll(toAdd);
-            return normalize(result);
+            return result;
            }
            default:
              map.putAll(toAdd);
=======================================
--- /trunk/dev/core/src/com/google/gwt/dev/util/collect/Sets.java       Mon May 
 
11 17:08:49 2009
+++ /trunk/dev/core/src/com/google/gwt/dev/util/collect/Sets.java       Thu Aug 
  
6 14:35:18 2009
@@ -15,6 +15,7 @@
   */
  package com.google.gwt.dev.util.collect;

+import java.util.Collection;
  import java.util.Collections;
  import java.util.Set;

@@ -50,6 +51,32 @@
          return set;
      }
    }
+
+  public static <T> Set<T> addAll(Set<T> set, Collection<T> toAdd) {
+    switch (toAdd.size()) {
+      case 0:
+        return set;
+      case 1:
+        return add(set, toAdd.iterator().next());
+    }
+
+    switch (set.size()) {
+      case 0:
+        // Empty -> HashSet
+        return new HashSet<T>(toAdd);
+      case 1: {
+        // Singleton -> HashSet
+        Set<T> result = new HashSet<T>();
+        result.add(set.iterator().next());
+        result.addAll(toAdd);
+        return result;
+      }
+      default:
+        // HashSet
+        set.addAll(toAdd);
+        return set;
+    }
+  }

    public static <T> Set<T> create() {
      return Collections.emptySet();

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to