public interface Binding extends BindingGraph.MaybeBinding
Key
and the way in which instances of the key are provided.
Includes any dependencies that are needed in order to provide the
instances.
If a binding is owned by more than one component, there is one Binding
for every
owning component.
Modifier and Type | Method and Description |
---|---|
default java.util.Optional<Binding> |
binding()
Deprecated.
This always returns
Optional.of(this) . |
java.util.Optional<javax.lang.model.element.Element> |
bindingElement()
The
Element that declares this binding. |
ComponentPath |
componentPath()
The component that owns the binding, or in which the binding is missing.
|
java.util.Optional<javax.lang.model.element.TypeElement> |
contributingModule()
The
TypeElement of the module which contributes this binding. |
com.google.common.collect.ImmutableSet<DependencyRequest> |
dependencies()
The dependencies of this binding.
|
boolean |
isNullable()
Returns
true if this binding may provide null instead of an instance of BindingGraph.MaybeBinding.key() . |
boolean |
isProduction()
Returns
true if this is a production binding, e.g. |
BindingKind |
kind()
The kind of binding this instance represents.
|
boolean |
requiresModuleInstance()
Returns
true if using this binding requires an instance of the contributingModule() . |
java.util.Optional<Scope> |
scope()
The scope of this binding if it has one.
|
key
ComponentPath componentPath()
BindingGraph.MaybeBinding
componentPath
in interface BindingGraph.MaybeBinding
componentPath
in interface BindingGraph.Node
@Deprecated default java.util.Optional<Binding> binding()
Optional.of(this)
.BindingGraph.MaybeBinding
binding
in interface BindingGraph.MaybeBinding
com.google.common.collect.ImmutableSet<DependencyRequest> dependencies()
java.util.Optional<javax.lang.model.element.Element> bindingElement()
Element
that declares this binding. Absent for binding
kinds that are not always declared by exactly one element.
For example, consider BindingKind.MULTIBOUND_SET
. A component with many
@IntoSet
bindings for the same key will have a synthetic binding that depends on all
contributions, but with no identifiying binding element. A @Multibinds
method will also
contribute a synthetic binding, but since multiple @Multibinds
methods can coexist in
the same component (and contribute to one single binding), it has no binding element.
java.util.Optional<javax.lang.model.element.TypeElement> contributingModule()
TypeElement
of the module which contributes this binding. Absent for bindings that
have no binding element
.boolean requiresModuleInstance()
true
if using this binding requires an instance of the contributingModule()
.java.util.Optional<Scope> scope()
boolean isNullable()
true
if this binding may provide null
instead of an instance of BindingGraph.MaybeBinding.key()
. Nullable bindings cannot be requested from non-nullable dependency requests.boolean isProduction()
true
if this is a production binding, e.g. an @Produces
method.BindingKind kind()