final class InternalContext
extends java.lang.Object
implements java.lang.AutoCloseable
Modifier and Type | Field and Description |
---|---|
private java.util.IdentityHashMap<java.lang.Object,ConstructionContext<?>> |
constructionContexts |
private Dependency<?> |
dependency
Keeps track of the type that is currently being requested for injection.
|
private int |
enterCount
The number of times
enter() has been called + 1 for initial construction. |
private InjectorImpl.InjectorOptions |
options |
private java.lang.Object[] |
toClear
A single element array to clear when the
enterCount hits 0 . |
Constructor and Description |
---|
InternalContext(InjectorImpl.InjectorOptions options,
java.lang.Object[] toClear) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Should be called any any method that received an instance via InjectorImpl.enterContext().
|
(package private) void |
enter()
Should only be called by InjectorImpl.enterContext().
|
(package private) <T> ConstructionContext<T> |
getConstructionContext(java.lang.Object key) |
(package private) Dependency<?> |
getDependency() |
(package private) InjectorImpl.InjectorOptions |
getInjectorOptions() |
(package private) void |
setDependency(Dependency<?> dependency)
Used to set the current dependency.
|
private final InjectorImpl.InjectorOptions options
private final java.util.IdentityHashMap<java.lang.Object,ConstructionContext<?>> constructionContexts
private Dependency<?> dependency
private int enterCount
enter()
has been called + 1 for initial construction. This value
is decremented when #exit()
is called.private final java.lang.Object[] toClear
enterCount
hits 0
.
This is the value stored in the InjectorImpl.localContext
thread local.
InternalContext(InjectorImpl.InjectorOptions options, java.lang.Object[] toClear)
void enter()
public void close()
close
in interface java.lang.AutoCloseable
InjectorImpl.InjectorOptions getInjectorOptions()
<T> ConstructionContext<T> getConstructionContext(java.lang.Object key)
Dependency<?> getDependency()
void setDependency(Dependency<?> dependency)
The currentDependency field is only used by InternalFactoryToProviderAdapter to propagate information to singleton scope. See comments in that class about alternatives.