Package com.google.inject.internal
Class ProviderMethod<T>
java.lang.Object
com.google.inject.internal.ProviderMethod<T>
- All Implemented Interfaces:
Provider<T>,HasDependencies,ProviderWithExtensionVisitor<T>,ProvidesMethodBinding<T>,jakarta.inject.Provider<T>,javax.inject.Provider<T>
public abstract class ProviderMethod<T>
extends Object
implements HasDependencies, ProvidesMethodBinding<T>, ProviderWithExtensionVisitor<T>
A provider that invokes a method and returns its result.
- Author:
- jessewilson@google.com (Jesse Wilson)
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescription<B,V> V acceptExtensionVisitor(BindingTargetVisitor<B, V> visitor, ProviderInstanceBinding<? extends B> binding) Instructs the extension determine if the visitor is an instance of a custom extension visitor, and if so, visit it using that method.voidprotected TdoProvision(com.google.inject.internal.InternalContext context, Dependency<?> dependency) Creates an object to be injected.booleanfinal Tget()Provides an instance ofT.final Tget(com.google.inject.internal.InternalContext context, Dependency<?> dependency, boolean linked) Returns the annotation that caused this binding to be created.Set<Dependency<?>> Returns the known dependencies for this type.Returns the instance of the object the method is defined in.getKey()Returns the key of the binding.Returns the method this binding uses.inthashCode()toString()
-
Field Details
-
instance
-
method
-
-
Method Details
-
getKey
Description copied from interface:ProvidesMethodBindingReturns the key of the binding.- Specified by:
getKeyin interfaceProvidesMethodBinding<T>
-
getMethod
Description copied from interface:ProvidesMethodBindingReturns the method this binding uses.- Specified by:
getMethodin interfaceProvidesMethodBinding<T>
-
getInstance
-
getEnclosingInstance
Description copied from interface:ProvidesMethodBindingReturns the instance of the object the method is defined in.- Specified by:
getEnclosingInstancein interfaceProvidesMethodBinding<T>
-
getAnnotation
Description copied from interface:ProvidesMethodBindingReturns the annotation that caused this binding to be created. For@Providesmethods, this is an instance of the@Providesannotation. For bindings fromModuleAnnotatedMethodScanner, this is the annotation that caused the scanner to produce the binding.- Specified by:
getAnnotationin interfaceProvidesMethodBinding<T>
-
configure
-
doProvision
protected T doProvision(com.google.inject.internal.InternalContext context, Dependency<?> dependency) throws InternalProvisionException Creates an object to be injected.- Returns:
- instance to be injected
- Throws:
InternalProvisionException- if a value cannot be provided
-
getDependencies
Description copied from interface:HasDependenciesReturns the known dependencies for this type. If this has dependencies whose values are not known statically, a dependency for theInjectorwill be included in the returned set.- Specified by:
getDependenciesin interfaceHasDependencies- Returns:
- a possibly empty set
-
acceptExtensionVisitor
public <B,V> V acceptExtensionVisitor(BindingTargetVisitor<B, V> visitor, ProviderInstanceBinding<? extends B> binding) Description copied from interface:ProviderWithExtensionVisitorInstructs the extension determine if the visitor is an instance of a custom extension visitor, and if so, visit it using that method. If the visitor is not an instance of the custom extension visitor, this method MUST call visitor.visit(binding).Due to issues with generics, the type parameters of this method do not relate to the type of the provider. In practice, the 'B' type will always be a supertype of 'T'.
- Specified by:
acceptExtensionVisitorin interfaceProviderWithExtensionVisitor<T>
-
toString
-
equals
-
hashCode
public int hashCode() -
get
public final T get(com.google.inject.internal.InternalContext context, Dependency<?> dependency, boolean linked) throws InternalProvisionException - Throws:
InternalProvisionException
-
get
Description copied from interface:ProviderProvides an instance ofT.
-