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.
|
keyComponentPath componentPath()
BindingGraph.MaybeBindingcomponentPath in interface BindingGraph.MaybeBindingcomponentPath in interface BindingGraph.Node@Deprecated default java.util.Optional<Binding> binding()
Optional.of(this).BindingGraph.MaybeBindingbinding in interface BindingGraph.MaybeBindingcom.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()