Package com.google.inject.grapher
Class DefaultEdgeCreator.EdgeVisitor
java.lang.Object
com.google.inject.spi.DefaultBindingTargetVisitor<Object,Collection<Edge>>
com.google.inject.grapher.DefaultEdgeCreator.EdgeVisitor
- All Implemented Interfaces:
BindingTargetVisitor<Object,
Collection<Edge>>
- Enclosing class:
- DefaultEdgeCreator
private static final class DefaultEdgeCreator.EdgeVisitor
extends DefaultBindingTargetVisitor<Object,Collection<Edge>>
BindingTargetVisitor
that adds edges to the graph based on the visited Binding
.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate <T extends Binding<?> & HasDependencies>
Collection<Edge>newDependencyEdges
(NodeId nodeId, T binding) Returns a dependency edge for eachDependency
in the binding.visit
(ConstructorBinding<?> binding) Visitor forConstructorBinding
s.visit
(ConvertedConstantBinding<?> binding) Visitor forConvertedConstantBinding
.visit
(InstanceBinding<?> binding) Visitor forInstanceBinding
.visit
(LinkedKeyBinding<?> binding) Visitor forLinkedKeyBinding
.visit
(ProviderBinding<?> binding) Visitor forProviderBinding
.visit
(ProviderInstanceBinding<?> binding) Same asvisit(InstanceBinding)
, but the binding edge isBindingEdge.Type.PROVIDER
.visit
(ProviderKeyBinding<?> binding) Same asvisit(LinkedKeyBinding)
, but the binding edge isBindingEdge.Type.PROVIDER
.visitOther
(Binding<?> binding) Default visit implementation.Methods inherited from class com.google.inject.spi.DefaultBindingTargetVisitor
visit, visit
-
Constructor Details
-
EdgeVisitor
private EdgeVisitor()
-
-
Method Details
-
newDependencyEdges
private <T extends Binding<?> & HasDependencies> 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
Visitor forConstructorBinding
s. These are for classes that Guice will instantiate to satisfy injection requests.- Specified by:
visit
in interfaceBindingTargetVisitor<Object,
Collection<Edge>> - Overrides:
visit
in classDefaultBindingTargetVisitor<Object,
Collection<Edge>>
-
visit
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<Object,
Collection<Edge>> - Overrides:
visit
in classDefaultBindingTargetVisitor<Object,
Collection<Edge>>
-
visit
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<Object,
Collection<Edge>> - Overrides:
visit
in classDefaultBindingTargetVisitor<Object,
Collection<Edge>>
-
visit
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<Object,
Collection<Edge>> - Overrides:
visit
in classDefaultBindingTargetVisitor<Object,
Collection<Edge>>
-
visit
Visitor forProviderBinding
. TheseBinding
s arise from anInjectionPoint
for theProvider
interface.- Specified by:
visit
in interfaceBindingTargetVisitor<Object,
Collection<Edge>> - Overrides:
visit
in classDefaultBindingTargetVisitor<Object,
Collection<Edge>>
-
visit
Same asvisit(InstanceBinding)
, but the binding edge isBindingEdge.Type.PROVIDER
.- Specified by:
visit
in interfaceBindingTargetVisitor<Object,
Collection<Edge>> - Overrides:
visit
in classDefaultBindingTargetVisitor<Object,
Collection<Edge>>
-
visit
Same asvisit(LinkedKeyBinding)
, but the binding edge isBindingEdge.Type.PROVIDER
.- Specified by:
visit
in interfaceBindingTargetVisitor<Object,
Collection<Edge>> - Overrides:
visit
in classDefaultBindingTargetVisitor<Object,
Collection<Edge>>
-
visitOther
Description copied from class:DefaultBindingTargetVisitor
Default visit implementation. Returnsnull
.- Overrides:
visitOther
in classDefaultBindingTargetVisitor<Object,
Collection<Edge>>
-