Class ProviderLookup<T>

  • All Implemented Interfaces:
    Element

    public final class ProviderLookup<T>
    extends java.lang.Object
    implements Element
    A lookup of the provider for a type. Lookups are created explicitly in a module using getProvider() statements:
         Provider<PaymentService> paymentServiceProvider
             = getProvider(PaymentService.class);
    Since:
    2.0
    • Constructor Summary

      Constructors 
      Constructor Description
      ProviderLookup​(java.lang.Object source, Key<T> key)  
    • Method Summary

      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).
      Provider<T> getDelegate()
      Returns the delegate provider, or null if it has not yet been initialized.
      Key<T> getKey()  
      Provider<T> getProvider()
      Returns the looked up provider.
      java.lang.Object getSource()
      Returns an arbitrary object containing information about the "place" where this element was configured.
      void initializeDelegate​(Provider<T> delegate)
      Sets the actual provider.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ProviderLookup

        public ProviderLookup​(java.lang.Object source,
                              Key<T> key)
    • Method Detail

      • getSource

        public java.lang.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
      • getKey

        public Key<T> getKey()
      • 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​(Provider<T> delegate)
        Sets the actual provider.
        Throws:
        java.lang.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 Provider<T> getDelegate()
        Returns the delegate provider, 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.
      • getProvider

        public Provider<T> getProvider()
        Returns the looked up provider. The result is not valid until this lookup has been initialized, which usually happens when the injector is created. The provider will throw an IllegalStateException if you try to use it beforehand.