Add Sets.addAll() utility method. Update to Maps.pulAll() per Scott. Patch by: bobv Review by: scottb git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5908 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/util/collect/Maps.java b/dev/core/src/com/google/gwt/dev/util/collect/Maps.java index 1cc6899..0d083a3 100644 --- a/dev/core/src/com/google/gwt/dev/util/collect/Maps.java +++ b/dev/core/src/com/google/gwt/dev/util/collect/Maps.java
@@ -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);
diff --git a/dev/core/src/com/google/gwt/dev/util/collect/Sets.java b/dev/core/src/com/google/gwt/dev/util/collect/Sets.java index b98d3d8..b5179f8 100644 --- a/dev/core/src/com/google/gwt/dev/util/collect/Sets.java +++ b/dev/core/src/com/google/gwt/dev/util/collect/Sets.java
@@ -15,6 +15,7 @@ */ package com.google.gwt.dev.util.collect; +import java.util.Collection; import java.util.Collections; import java.util.Set; @@ -51,6 +52,32 @@ } } + 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(); }