org.elasticsearch.common.inject.spi
Class MembersInjectorLookup<T>

java.lang.Object
  extended by org.elasticsearch.common.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 using getMembersInjector() statements:

     MembersInjector<PaymentService> membersInjector
         = getMembersInjector(PaymentService.class);

Since:
2.0
Author:
crazybob@google.com (Bob Lee)

Constructor Summary
MembersInjectorLookup(Object source, TypeLiteral<T> type)
           
 
Method Summary
<T> T
acceptVisitor(ElementVisitor<T> visitor)
          Accepts an element visitor.
 void applyTo(Binder binder)
          Writes this module element to the given binder (optional operation).
 MembersInjector<T> getDelegate()
          Returns the delegate members injector, or null if it has not yet been initialized.
 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.
 void initializeDelegate(MembersInjector<T> delegate)
          Sets the actual members injector.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 call toString() on the source object if the type is unfamiliar.

Specified by:
getSource in interface Element

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 interface Element
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).

Specified by:
applyTo in interface Element
Parameters:
binder - to apply configuration element to

getDelegate

public MembersInjector<T> getDelegate()
Returns the delegate members injector, or null if it has not yet been initialized. The delegate will be initialized when this element is processed, or otherwise used to create an injector.


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 an IllegalStateException if you try to use it beforehand.



Copyright © 2009-2012. All Rights Reserved.