Package com.google.inject.internal
Class InternalInjectorCreator
- java.lang.Object
-
- com.google.inject.internal.InternalInjectorCreator
-
public final class InternalInjectorCreator extends Object
Builds a tree of injectors. This is a primary injector, plus child injectors needed for eachBinder.newPrivateBinder() private environment
. The primary injector is not necessarily a top-level injector.Injector construction happens in two phases.
- Static building. In this phase, we interpret commands, create bindings, and inspect dependencies. During this phase, we hold a lock to ensure consistency with parent injectors. No user code is executed in this phase.
- Dynamic injection. In this phase, we call user code. We inject members that requested
injection. This may require user's objects be created and their providers be called. And we
create eager singletons. In this phase, user code may have started other threads. This
phase is not executed for injectors created using
the tool stage
- Author:
- crazybob@google.com (Bob Lee), jessewilson@google.com (Jesse Wilson)
-
-
Constructor Summary
Constructors Constructor Description InternalInjectorCreator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description InternalInjectorCreator
addModules(Iterable<? extends Module> modules)
Injector
build()
InternalInjectorCreator
parentInjector(com.google.inject.internal.InjectorImpl parent)
Sets the parent of the injector to-be-constructed.InternalInjectorCreator
stage(Stage stage)
-
-
-
Method Detail
-
stage
public InternalInjectorCreator stage(Stage stage)
-
parentInjector
public InternalInjectorCreator parentInjector(com.google.inject.internal.InjectorImpl parent)
Sets the parent of the injector to-be-constructed. As a side effect, this sets this injector's stage to the stage ofparent
and sets#requireExplicitBindings()
if the parent injector also required them.
-
addModules
public InternalInjectorCreator addModules(Iterable<? extends Module> modules)
-
build
public Injector build()
-
-