Redesigned scopes to enable custom implementations. Renamed DependencyException to ConfigurationException. Cleaned up Container's interface. It now returns a Factory instead of a direct instance so clients don't have to keep passing in the paramters resulting in a map lookup. Added support for injecting Factory<T> where T is any bound type.

git-svn-id: https://google-guice.googlecode.com/svn/trunk@17 d779f126-a31b-0410-b53b-1d3aecad763e
diff --git a/src/com/google/inject/InternalContext.java b/src/com/google/inject/InternalContext.java
index 322e065..d79b5d6 100644
--- a/src/com/google/inject/InternalContext.java
+++ b/src/com/google/inject/InternalContext.java
@@ -30,12 +30,10 @@
   final ContainerImpl container;
   final Map<Object, ConstructionContext<?>> constructionContexts =
       new HashMap<Object, ConstructionContext<?>>();
-  final Scope.Strategy scopeStrategy;
   ExternalContext<?> externalContext;
 
-  InternalContext(ContainerImpl container, Scope.Strategy scopeStrategy) {
+  InternalContext(ContainerImpl container) {
     this.container = container;
-    this.scopeStrategy = scopeStrategy;
   }
 
   public Container getContainer() {
@@ -46,15 +44,6 @@
     return container;
   }
 
-  Scope.Strategy getScopeStrategy() {
-    if (scopeStrategy == null) {
-      throw new IllegalStateException("Scope strategy not set. "
-          + "Please call Container.setScopeStrategy().");
-    }
-
-    return scopeStrategy;
-  }
-
   @SuppressWarnings("unchecked")
   <T> ConstructionContext<T> getConstructionContext(Object key) {
     ConstructionContext<T> constructionContext =