final class InjectorShell
extends java.lang.Object
InternalInjectorCreator
to recursively create a tree of
uninitialized Injector
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
.
Modifier and Type | Class and 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 |
Modifier and Type | Field and Description |
---|---|
private java.util.List<Element> |
elements |
private InjectorImpl |
injector |
Modifier | Constructor and Description |
---|---|
private |
InjectorShell(java.util.List<Element> elements,
InjectorImpl injector) |
Modifier and Type | Method and 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() |
private final java.util.List<Element> elements
private final InjectorImpl injector
private InjectorShell(java.util.List<Element> elements, InjectorImpl injector)
InjectorImpl getInjector()
java.util.List<Element> getElements()
private static void bindInjector(InjectorImpl injector)
private static void bindLogger(InjectorImpl injector)
private static void bindStage(InjectorImpl injector, Stage stage)