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 visited Binding
.Modifier | Constructor and Description |
---|---|
private |
EdgeVisitor() |
Modifier and Type | Method and Description |
---|---|
private <T extends Binding<?> & HasDependencies> |
newDependencyEdges(NodeId nodeId,
T binding)
Returns a dependency edge for each
Dependency in the binding. |
java.util.Collection<Edge> |
visit(ConstructorBinding<?> binding)
Visitor for
ConstructorBinding s. |
java.util.Collection<Edge> |
visit(ConvertedConstantBinding<?> binding)
Visitor for
ConvertedConstantBinding . |
java.util.Collection<Edge> |
visit(InstanceBinding<?> binding)
Visitor for
InstanceBinding . |
java.util.Collection<Edge> |
visit(LinkedKeyBinding<?> binding)
Visitor for
LinkedKeyBinding . |
java.util.Collection<Edge> |
visit(ProviderBinding<?> binding)
Visitor for
ProviderBinding . |
java.util.Collection<Edge> |
visit(ProviderInstanceBinding<?> binding)
Same as
visit(InstanceBinding) , but the binding edge is
BindingEdge.Type.PROVIDER . |
java.util.Collection<Edge> |
visit(ProviderKeyBinding<?> binding)
Same as
visit(LinkedKeyBinding) , but the binding edge is
BindingEdge.Type.PROVIDER . |
java.util.Collection<Edge> |
visitOther(Binding<?> binding)
Default visit implementation.
|
visit, visit
private <T extends Binding<?> & HasDependencies> java.util.Collection<Edge> newDependencyEdges(NodeId nodeId, T binding)
Dependency
in the binding. These will be from the
given node ID to the Dependency
's Key
.nodeId
- ID of the node that should be the tail of the dependency
edgesbinding
- Binding
for the dependenciespublic java.util.Collection<Edge> visit(ConstructorBinding<?> binding)
ConstructorBinding
s. These are for classes that Guice will instantiate to
satisfy injection requests.visit
in interface BindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
visit
in class DefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
public java.util.Collection<Edge> visit(ConvertedConstantBinding<?> binding)
ConvertedConstantBinding
. The Binding
's Key
will be of an
annotated primitive type, and the value of ConvertedConstantBinding.getSourceKey()
will be of a String
with the same annotation.visit
in interface BindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
visit
in class DefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
public java.util.Collection<Edge> visit(InstanceBinding<?> binding)
InstanceBinding
. We then render any dependency edgess that the instance
may have, which come either from InjectionPoint
s (method and field) on the instance,
or on Dependency
s the instance declares through the HasDependencies
interface.visit
in interface BindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
visit
in class DefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
public java.util.Collection<Edge> visit(LinkedKeyBinding<?> binding)
LinkedKeyBinding
. This is the standard Binding
you get from
binding an interface class to an implementation class. We draw a BindingEdge
from
the interface node to the node of the implementing class.visit
in interface BindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
visit
in class DefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
public java.util.Collection<Edge> visit(ProviderBinding<?> binding)
ProviderBinding
. These Binding
s arise from an
InjectionPoint
for the Provider
interface.visit
in interface BindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
visit
in class DefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
public java.util.Collection<Edge> visit(ProviderInstanceBinding<?> binding)
visit(InstanceBinding)
, but the binding edge is
BindingEdge.Type.PROVIDER
.visit
in interface BindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
visit
in class DefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
public java.util.Collection<Edge> visit(ProviderKeyBinding<?> binding)
visit(LinkedKeyBinding)
, but the binding edge is
BindingEdge.Type.PROVIDER
.visit
in interface BindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
visit
in class DefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>
public java.util.Collection<Edge> visitOther(Binding<?> binding)
DefaultBindingTargetVisitor
null
.visitOther
in class DefaultBindingTargetVisitor<java.lang.Object,java.util.Collection<Edge>>