aboutsummaryrefslogtreecommitdiff
path: root/src/com/google/inject/FactoryToInternalFactoryAdapter.java
diff options
context:
space:
mode:
authorcrazyboblee <crazyboblee@d779f126-a31b-0410-b53b-1d3aecad763e>2007-02-01 00:28:09 +0000
committercrazyboblee <crazyboblee@d779f126-a31b-0410-b53b-1d3aecad763e>2007-02-01 00:28:09 +0000
commit7289ac1bb7df2762e946125eebc03c440f1c72c0 (patch)
tree2b0779ed51d137efed0663574879676176089953 /src/com/google/inject/FactoryToInternalFactoryAdapter.java
parent9bb62020927911172430dc3d94ee61796d519236 (diff)
downloadguice-7289ac1bb7df2762e946125eebc03c440f1c72c0.tar.gz
Pulled up some anonymous inner classes. Hopefully the CB will be eligible for garbage collection after startup. I'll have to test this theory later.
git-svn-id: https://google-guice.googlecode.com/svn/trunk@45 d779f126-a31b-0410-b53b-1d3aecad763e
Diffstat (limited to 'src/com/google/inject/FactoryToInternalFactoryAdapter.java')
-rw-r--r--src/com/google/inject/FactoryToInternalFactoryAdapter.java32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/com/google/inject/FactoryToInternalFactoryAdapter.java b/src/com/google/inject/FactoryToInternalFactoryAdapter.java
new file mode 100644
index 00000000..a7bca2bb
--- /dev/null
+++ b/src/com/google/inject/FactoryToInternalFactoryAdapter.java
@@ -0,0 +1,32 @@
+// Copyright 2006 Google Inc. All Rights Reserved.
+
+package com.google.inject;
+
+/**
+ * @author crazybob@google.com (Bob Lee)
+*/
+class FactoryToInternalFactoryAdapter<T> implements Factory<T> {
+
+ private final ContainerImpl container;
+
+ private final InternalFactory<? extends T> internalFactory;
+
+ public FactoryToInternalFactoryAdapter(ContainerImpl container,
+ InternalFactory<? extends T> internalFactory) {
+ this.container = container;
+ this.internalFactory = internalFactory;
+ }
+
+ public T get() {
+ return container.callInContext(
+ new ContainerImpl.ContextualCallable<T>() {
+ public T call(InternalContext context) {
+ return internalFactory.get(context);
+ }
+ });
+ }
+
+ public String toString() {
+ return internalFactory.toString();
+ }
+}