Make ServletScopes#scopeRequest slightly more efficient for larger seed maps.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=61542674
diff --git a/extensions/servlet/src/com/google/inject/servlet/ServletScopes.java b/extensions/servlet/src/com/google/inject/servlet/ServletScopes.java
index 5acf653..cd593bf 100644
--- a/extensions/servlet/src/com/google/inject/servlet/ServletScopes.java
+++ b/extensions/servlet/src/com/google/inject/servlet/ServletScopes.java
@@ -19,6 +19,7 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
+import com.google.common.collect.Maps.EntryTransformer;
import com.google.inject.Binding;
import com.google.inject.Injector;
import com.google.inject.Key;
@@ -326,10 +327,13 @@
// Copy the seed values into our local scope map.
final Context context = new Context();
- for (Map.Entry<Key<?>, Object> entry : seedMap.entrySet()) {
- Object value = validateAndCanonicalizeValue(entry.getKey(), entry.getValue());
- context.map.put(entry.getKey(), value);
- }
+ Map<Key<?>, Object> validatedAndCanonicalizedMap =
+ Maps.transformEntries(seedMap, new EntryTransformer<Key<?>, Object, Object>() {
+ @Override public Object transformEntry(Key<?> key, Object value) {
+ return validateAndCanonicalizeValue(key, value);
+ }
+ });
+ context.map.putAll(validatedAndCanonicalizedMap);
return new Callable<T>() {
public T call() throws Exception {