Exposed binding dependencies. You should now be able to crawl the entire dependency graph.

git-svn-id: https://google-guice.googlecode.com/svn/trunk@363 d779f126-a31b-0410-b53b-1d3aecad763e
diff --git a/src/com/google/inject/ClassBindingImpl.java b/src/com/google/inject/ClassBindingImpl.java
index cdeb3cd..cb727c1 100644
--- a/src/com/google/inject/ClassBindingImpl.java
+++ b/src/com/google/inject/ClassBindingImpl.java
@@ -18,7 +18,10 @@
 
 import com.google.inject.spi.ClassBinding;
 import com.google.inject.spi.BindingVisitor;
+import com.google.inject.spi.Dependency;
 import com.google.inject.internal.ToStringBuilder;
+import com.google.inject.InjectorImpl.SingleParameterInjector;
+import java.util.Collection;
 
 /**
  *
@@ -42,6 +45,20 @@
     return (Class<T>) key.getRawType();
   }
 
+  public Collection<Dependency<?>> getDependencies() {
+    Class<T> boundClass = getBoundClass();
+    Collection<Dependency<?>> injectors
+        = injector.getModifiableFieldAndMethodDependenciesFor(boundClass);
+    ConstructorInjector<T> constructor = injector.getConstructor(boundClass);
+    if (constructor.parameterInjectors != null) {
+      for (SingleParameterInjector<?> parameterInjector
+          : constructor.parameterInjectors) {
+        injectors.add(parameterInjector.externalContext);
+      }
+    }
+    return injectors;
+  }
+
   @Override
   public String toString() {
     return new ToStringBuilder(ClassBinding.class)