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)