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
diff --git a/src/com/google/inject/FactoryToInternalFactoryAdapter.java b/src/com/google/inject/FactoryToInternalFactoryAdapter.java
new file mode 100644
index 0000000..a7bca2b
--- /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();
+ }
+}