Class InternalInjectorCreator.ToolStageInjector

java.lang.Object
com.google.inject.internal.InternalInjectorCreator.ToolStageInjector
All Implemented Interfaces:
Injector
Enclosing class:
InternalInjectorCreator

static class InternalInjectorCreator.ToolStageInjector extends Object implements Injector
Injector exposed to users in Stage.TOOL.
  • Field Details

    • delegateInjector

      private final Injector delegateInjector
  • Constructor Details

    • ToolStageInjector

      ToolStageInjector(Injector delegateInjector)
  • Method Details

    • injectMembers

      public void injectMembers(Object o)
      Description copied from interface: Injector
      Injects dependencies into the fields and methods of instance. Ignores the presence or absence of an injectable constructor.

      Whenever Guice creates an instance, it performs this injection automatically (after first performing constructor injection), so if you're able to let Guice create all your objects for you, you'll never need to use this method.

      Specified by:
      injectMembers in interface Injector
      Parameters:
      o - to inject members on
      See Also:
    • getBindings

      public Map<Key<?>,Binding<?>> getBindings()
      Description copied from interface: Injector
      Returns this injector's explicit bindings.

      The returned map does not include bindings inherited from a parent injector, should one exist. The returned map is guaranteed to iterate (for example, with its Map.entrySet() iterator) in the order of insertion. In other words, the order in which bindings appear in user Modules.

      This method is part of the Guice SPI and is intended for use by tools and extensions.

      Specified by:
      getBindings in interface Injector
    • getAllBindings

      public Map<Key<?>,Binding<?>> getAllBindings()
      Description copied from interface: Injector
      Returns a snapshot of this injector's bindings, both explicit and just-in-time. The returned map is immutable; it contains only the bindings that were present when getAllBindings() was invoked. Just-in-time bindings are only present if they have been requested at least once. Subsequent calls may return a map with additional just-in-time bindings.

      The returned map does not include bindings inherited from a parent injector, should one exist.

      This method is part of the Guice SPI and is intended for use by tools and extensions.

      Specified by:
      getAllBindings in interface Injector
    • getBinding

      public <T> Binding<T> getBinding(Key<T> key)
      Description copied from interface: Injector
      Returns the binding for the given injection key. This will be an explicit bindings if the key was bound explicitly by a module, or an implicit binding otherwise. The implicit binding will be created if necessary.

      This method is part of the Guice SPI and is intended for use by tools and extensions.

      Specified by:
      getBinding in interface Injector
    • getBinding

      public <T> Binding<T> getBinding(Class<T> type)
      Description copied from interface: Injector
      Returns the binding for the given type. This will be an explicit bindings if the injection key was bound explicitly by a module, or an implicit binding otherwise. The implicit binding will be created if necessary.

      This method is part of the Guice SPI and is intended for use by tools and extensions.

      Specified by:
      getBinding in interface Injector
    • getExistingBinding

      public <T> Binding<T> getExistingBinding(Key<T> key)
      Description copied from interface: Injector
      Returns the binding if it already exists, or null if does not exist. Unlike Injector.getBinding(Key), this does not attempt to create just-in-time bindings for keys that aren't bound.

      This method is part of the Guice SPI and is intended for use by tools and extensions.

      Specified by:
      getExistingBinding in interface Injector
    • findBindingsByType

      public <T> List<Binding<T>> findBindingsByType(TypeLiteral<T> type)
      Description copied from interface: Injector
      Returns all explicit bindings for type.

      This method is part of the Guice SPI and is intended for use by tools and extensions.

      Specified by:
      findBindingsByType in interface Injector
    • getParent

      public Injector getParent()
      Description copied from interface: Injector
      Returns this injector's parent, or null if this is a top-level injector.
      Specified by:
      getParent in interface Injector
    • createChildInjector

      public Injector createChildInjector(Iterable<? extends Module> modules)
      Description copied from interface: Injector
      Returns a new injector that inherits all state from this injector. All bindings, scopes, interceptors and type converters are inherited -- they are visible to the child injector. Elements of the child injector are not visible to its parent.

      Just-in-time bindings created for child injectors will be created in an ancestor injector whenever possible. This allows for scoped instances to be shared between injectors. Use explicit bindings to prevent bindings from being shared with the parent injector. Optional injections in just-in-time bindings (created in the parent injector) may be silently ignored if the optional dependencies are from the child injector.

      No key may be bound by both an injector and one of its ancestors. This includes just-in-time bindings. The lone exception is the key for Injector.class, which is bound by each injector to itself.

      Specified by:
      createChildInjector in interface Injector
    • createChildInjector

      public Injector createChildInjector(Module... modules)
      Description copied from interface: Injector
      Returns a new injector that inherits all state from this injector. All bindings, scopes, interceptors and type converters are inherited -- they are visible to the child injector. Elements of the child injector are not visible to its parent.

      Just-in-time bindings created for child injectors will be created in an ancestor injector whenever possible. This allows for scoped instances to be shared between injectors. Use explicit bindings to prevent bindings from being shared with the parent injector.

      No key may be bound by both an injector and one of its ancestors. This includes just-in-time bindings. The lone exception is the key for Injector.class, which is bound by each injector to itself.

      Specified by:
      createChildInjector in interface Injector
    • getScopeBindings

      public Map<Class<? extends Annotation>,Scope> getScopeBindings()
      Description copied from interface: Injector
      Returns a map containing all scopes in the injector. The maps keys are scoping annotations like Singleton.class, and the values are scope instances, such as Scopes.SINGLETON. The returned map is immutable.

      This method is part of the Guice SPI and is intended for use by tools and extensions.

      Specified by:
      getScopeBindings in interface Injector
    • getTypeConverterBindings

      public Set<TypeConverterBinding> getTypeConverterBindings()
      Description copied from interface: Injector
      Returns a set containing all type converter bindings in the injector. The returned set is immutable.

      This method is part of the Guice SPI and is intended for use by tools and extensions.

      Specified by:
      getTypeConverterBindings in interface Injector
    • getElements

      public List<Element> getElements()
      Description copied from interface: Injector
      Returns the elements that make up this injector. Note that not all kinds of elements are returned.

      The returned list does not include elements inherited from a parent injector, should one exist.

      The returned list is immutable; it contains only the elements that were present when Injector.getElements() was invoked. Subsequent calls may return a list with additional elements.

      The returned list does not include data inherited from a parent injector, should one exist.

      This method is part of the Guice SPI and is intended for use by tools and extensions.

      Specified by:
      getElements in interface Injector
    • getAllMembersInjectorInjectionPoints

      public Map<TypeLiteral<?>,List<InjectionPoint>> getAllMembersInjectorInjectionPoints()
      Description copied from interface: Injector
      Returns the injection points created for calls to Injector.getMembersInjector(com.google.inject.TypeLiteral<T>) (either directly or indirectly, e.g. through Injector.injectMembers(java.lang.Object).

      This excludes any injection points from elements (which are accessible from each element via the SPI), unless Injector.getMembersInjector(com.google.inject.TypeLiteral<T>) or Injector.injectMembers(java.lang.Object) were also called for the same key.

      The returned multimap does not include data inherited from a parent injector, should one exist.

      This method is part of the Guice SPI and is intended for use by tools and extensions.

      Specified by:
      getAllMembersInjectorInjectionPoints in interface Injector
    • getProvider

      public <T> Provider<T> getProvider(Key<T> key)
      Description copied from interface: Injector
      Returns the provider used to obtain instances for the given injection key. When feasible, avoid using this method, in favor of having Guice inject your dependencies ahead of time.
      Specified by:
      getProvider in interface Injector
      See Also:
    • getProvider

      public <T> Provider<T> getProvider(Class<T> type)
      Description copied from interface: Injector
      Returns the provider used to obtain instances for the given type. When feasible, avoid using this method, in favor of having Guice inject your dependencies ahead of time.
      Specified by:
      getProvider in interface Injector
      See Also:
    • getMembersInjector

      public <T> MembersInjector<T> getMembersInjector(TypeLiteral<T> typeLiteral)
      Description copied from interface: Injector
      Returns the members injector used to inject dependencies into methods and fields on instances of the given type T.
      Specified by:
      getMembersInjector in interface Injector
      Parameters:
      typeLiteral - type to get members injector for
      See Also:
    • getMembersInjector

      public <T> MembersInjector<T> getMembersInjector(Class<T> type)
      Description copied from interface: Injector
      Returns the members injector used to inject dependencies into methods and fields on instances of the given type T. When feasible, use Binder.getMembersInjector(TypeLiteral) instead to get increased up front error detection.
      Specified by:
      getMembersInjector in interface Injector
      Parameters:
      type - type to get members injector for
      See Also:
    • getInstance

      public <T> T getInstance(Key<T> key)
      Description copied from interface: Injector
      Returns the appropriate instance for the given injection key; equivalent to getProvider(key).get(). When feasible, avoid using this method, in favor of having Guice inject your dependencies ahead of time.
      Specified by:
      getInstance in interface Injector
    • getInstance

      public <T> T getInstance(Class<T> type)
      Description copied from interface: Injector
      Returns the appropriate instance for the given injection type; equivalent to getProvider(type).get(). When feasible, avoid using this method, in favor of having Guice inject your dependencies ahead of time.
      Specified by:
      getInstance in interface Injector