Package com.google.inject.grapher
Class DefaultEdgeCreator.EdgeVisitor
- java.lang.Object
-
- com.google.inject.spi.DefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
-
- com.google.inject.grapher.DefaultEdgeCreator.EdgeVisitor
-
- All Implemented Interfaces:
BindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
- Enclosing class:
- DefaultEdgeCreator
private static final class DefaultEdgeCreator.EdgeVisitor extends DefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
BindingTargetVisitor
that adds edges to the graph based on the visitedBinding
.
-
-
Constructor Summary
Constructors Modifier Constructor Description private
EdgeVisitor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private <T extends Binding<?> & HasDependencies>
java.util.Collection<Edge>newDependencyEdges(NodeId nodeId, T binding)
Returns a dependency edge for eachDependency
in the binding.java.util.Collection<Edge>
visit(ConstructorBinding<?> binding)
Visitor forConstructorBinding
s.java.util.Collection<Edge>
visit(ConvertedConstantBinding<?> binding)
Visitor forConvertedConstantBinding
.java.util.Collection<Edge>
visit(InstanceBinding<?> binding)
Visitor forInstanceBinding
.java.util.Collection<Edge>
visit(LinkedKeyBinding<?> binding)
Visitor forLinkedKeyBinding
.java.util.Collection<Edge>
visit(ProviderBinding<?> binding)
Visitor forProviderBinding
.java.util.Collection<Edge>
visit(ProviderInstanceBinding<?> binding)
Same asvisit(InstanceBinding)
, but the binding edge isBindingEdge.Type.PROVIDER
.java.util.Collection<Edge>
visit(ProviderKeyBinding<?> binding)
Same asvisit(LinkedKeyBinding)
, but the binding edge isBindingEdge.Type.PROVIDER
.java.util.Collection<Edge>
visitOther(Binding<?> binding)
Default visit implementation.-
Methods inherited from class com.google.inject.spi.DefaultBindingTargetVisitor
visit, visit
-
-
-
-
Method Detail
-
newDependencyEdges
private <T extends Binding<?> & HasDependencies> java.util.Collection<Edge> newDependencyEdges(NodeId nodeId, T binding)
Returns a dependency edge for eachDependency
in the binding. These will be from the given node ID to theDependency
'sKey
.- Parameters:
nodeId
- ID of the node that should be the tail of the dependency edgesbinding
-Binding
for the dependencies
-
visit
public java.util.Collection<Edge> visit(ConstructorBinding<?> binding)
Visitor forConstructorBinding
s. These are for classes that Guice will instantiate to satisfy injection requests.- Specified by:
visit
in interfaceBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
- Overrides:
visit
in classDefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
-
visit
public java.util.Collection<Edge> visit(ConvertedConstantBinding<?> binding)
Visitor forConvertedConstantBinding
. TheBinding
'sKey
will be of an annotated primitive type, and the value ofConvertedConstantBinding.getSourceKey()
will be of aString
with the same annotation.- Specified by:
visit
in interfaceBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
- Overrides:
visit
in classDefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
-
visit
public java.util.Collection<Edge> visit(InstanceBinding<?> binding)
Visitor forInstanceBinding
. We then render any dependency edgess that the instance may have, which come either fromInjectionPoint
s (method and field) on the instance, or onDependency
s the instance declares through theHasDependencies
interface.- Specified by:
visit
in interfaceBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
- Overrides:
visit
in classDefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
-
visit
public java.util.Collection<Edge> visit(LinkedKeyBinding<?> binding)
Visitor forLinkedKeyBinding
. This is the standardBinding
you get from binding an interface class to an implementation class. We draw aBindingEdge
from the interface node to the node of the implementing class.- Specified by:
visit
in interfaceBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
- Overrides:
visit
in classDefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
-
visit
public java.util.Collection<Edge> visit(ProviderBinding<?> binding)
Visitor forProviderBinding
. TheseBinding
s arise from anInjectionPoint
for theProvider
interface.- Specified by:
visit
in interfaceBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
- Overrides:
visit
in classDefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
-
visit
public java.util.Collection<Edge> visit(ProviderInstanceBinding<?> binding)
Same asvisit(InstanceBinding)
, but the binding edge isBindingEdge.Type.PROVIDER
.- Specified by:
visit
in interfaceBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
- Overrides:
visit
in classDefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
-
visit
public java.util.Collection<Edge> visit(ProviderKeyBinding<?> binding)
Same asvisit(LinkedKeyBinding)
, but the binding edge isBindingEdge.Type.PROVIDER
.- Specified by:
visit
in interfaceBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
- Overrides:
visit
in classDefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
-
visitOther
public java.util.Collection<Edge> visitOther(Binding<?> binding)
Description copied from class:DefaultBindingTargetVisitor
Default visit implementation. Returnsnull
.- Overrides:
visitOther
in classDefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
-
-