Package com.google.inject.spi
Class MembersInjectorLookup<T>
- java.lang.Object
-
- com.google.inject.spi.MembersInjectorLookup<T>
-
- All Implemented Interfaces:
Element
public final class MembersInjectorLookup<T> extends Object implements Element
A lookup of the members injector for a type. Lookups are created explicitly in a module usinggetMembersInjector()
statements:MembersInjector<PaymentService> membersInjector = getMembersInjector(PaymentService.class);
- Since:
- 2.0
- Author:
- crazybob@google.com (Bob Lee)
-
-
Constructor Summary
Constructors Constructor Description MembersInjectorLookup(Object source, TypeLiteral<T> type)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> T
acceptVisitor(ElementVisitor<T> visitor)
Accepts an element visitor.void
applyTo(Binder binder)
Writes this module element to the given binder (optional operation).boolean
equals(Object obj)
MembersInjector<T>
getDelegate()
Returns the delegate members injector, ornull
if it has not yet been initialized.Set<InjectionPoint>
getInjectionPoints()
Returns the instance methods and fields that will be injected to fulfill this request.MembersInjector<T>
getMembersInjector()
Returns the looked up members injector.Object
getSource()
Returns an arbitrary object containing information about the "place" where this element was configured.TypeLiteral<T>
getType()
Gets the type containing the members to be injected.int
hashCode()
void
initializeDelegate(MembersInjector<T> delegate)
Sets the actual members injector.
-
-
-
Constructor Detail
-
MembersInjectorLookup
public MembersInjectorLookup(Object source, TypeLiteral<T> type)
-
-
Method Detail
-
getSource
public Object getSource()
Description copied from interface:Element
Returns an arbitrary object containing information about the "place" where this element was configured. Used by Guice in the production of descriptive error messages.Tools might specially handle types they know about;
StackTraceElement
is a good example. Tools should simply calltoString()
on the source object if the type is unfamiliar.
-
getType
public TypeLiteral<T> getType()
Gets the type containing the members to be injected.
-
acceptVisitor
public <T> T acceptVisitor(ElementVisitor<T> visitor)
Description copied from interface:Element
Accepts an element visitor. Invokes the visitor method specific to this element's type.- Specified by:
acceptVisitor
in interfaceElement
- Parameters:
visitor
- to call back on
-
initializeDelegate
public void initializeDelegate(MembersInjector<T> delegate)
Sets the actual members injector.- Throws:
IllegalStateException
- if the delegate is already set
-
applyTo
public void applyTo(Binder binder)
Description copied from interface:Element
Writes this module element to the given binder (optional operation).
-
getDelegate
public MembersInjector<T> getDelegate()
Returns the delegate members injector, ornull
if it has not yet been initialized. The delegate will be initialized when this element is processed, or otherwise used to create an injector.
-
getInjectionPoints
public Set<InjectionPoint> getInjectionPoints() throws ConfigurationException
Returns the instance methods and fields that will be injected to fulfill this request.- Returns:
- a possibly empty set of injection points. The set has a specified iteration order. All fields are returned and then all methods. Within the fields, supertype fields are returned before subtype fields. Similarly, supertype methods are returned before subtype methods.
- Throws:
ConfigurationException
- if there is a malformed injection point on the class ofinstance
, such as a field with multiple binding annotations. The exception'spartial value
is aSet<InjectionPoint>
of the valid injection points.- Since:
- 4.2.3
-
getMembersInjector
public MembersInjector<T> getMembersInjector()
Returns the looked up members injector. The result is not valid until this lookup has been initialized, which usually happens when the injector is created. The members injector will throw anIllegalStateException
if you try to use it beforehand.
-
-