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();
+  }
+}