Package com.google.inject.internal
Class InjectorShell
- java.lang.Object
-
- com.google.inject.internal.InjectorShell
-
final class InjectorShell extends java.lang.ObjectInjectorShell is used byInternalInjectorCreatorto recursively create a tree of uninitializedInjectors. Each InjectorShell corresponds to either the top-level root injector, or a private child injector.The root InjectorShell extracts elements from its list of modules and processes these elements to aggregate data that is used to populate its injector's fields. Child injectors are constructed similarly, but using
PrivateElementsinstead of modules.It is necessary to create the root and child injectors in a single batch because there can be bidirectional parent <-> child injector dependencies that require the entire tree of injectors to be initialized together in the
InternalInjectorCreator.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classInjectorShell.Builderprivate static classInjectorShell.InheritedScannersModuleprivate static classInjectorShell.InjectorFactoryprivate static classInjectorShell.LoggerFactoryprivate static classInjectorShell.RootModule
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<Element>elementsprivate InjectorImplinjector
-
Constructor Summary
Constructors Modifier Constructor Description privateInjectorShell(java.util.List<Element> elements, InjectorImpl injector)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static voidbindInjector(InjectorImpl injector)The Injector is a special case because we allow both parent and child injectors to both have a binding for that key.private static voidbindLogger(InjectorImpl injector)The Logger is a special case because it knows the injection point of the injected member.private static voidbindStage(InjectorImpl injector, Stage stage)(package private) java.util.List<Element>getElements()(package private) InjectorImplgetInjector()
-
-
-
Field Detail
-
elements
private final java.util.List<Element> elements
-
injector
private final InjectorImpl injector
-
-
Constructor Detail
-
InjectorShell
private InjectorShell(java.util.List<Element> elements, InjectorImpl injector)
-
-
Method Detail
-
getInjector
InjectorImpl getInjector()
-
getElements
java.util.List<Element> getElements()
-
bindInjector
private static void bindInjector(InjectorImpl injector)
The Injector is a special case because we allow both parent and child injectors to both have a binding for that key.
-
bindLogger
private static void bindLogger(InjectorImpl injector)
The Logger is a special case because it knows the injection point of the injected member. It's the only binding that does this.
-
bindStage
private static void bindStage(InjectorImpl injector, Stage stage)
-
-