Package com.google.inject.internal
Class InjectorShell
- java.lang.Object
-
- com.google.inject.internal.InjectorShell
-
final class InjectorShell extends java.lang.Object
InjectorShell is used byInternalInjectorCreator
to recursively create a tree of uninitializedInjector
s. 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
PrivateElements
instead 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 class
InjectorShell.Builder
private static class
InjectorShell.InheritedScannersModule
private static class
InjectorShell.InjectorFactory
private static class
InjectorShell.LoggerFactory
private static class
InjectorShell.RootModule
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<Element>
elements
private InjectorImpl
injector
-
Constructor Summary
Constructors Modifier Constructor Description private
InjectorShell(java.util.List<Element> elements, InjectorImpl injector)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.private static void
bindLogger(InjectorImpl injector)
The Logger is a special case because it knows the injection point of the injected member.private static void
bindStage(InjectorImpl injector, Stage stage)
(package private) java.util.List<Element>
getElements()
(package private) InjectorImpl
getInjector()
-
-
-
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)
-
-