Package org.glassfish.hk2.internal
Class PerThreadContext
- java.lang.Object
-
- org.glassfish.hk2.internal.PerThreadContext
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
PerThreadContext.PerContextThreadWrapper
-
Field Summary
Fields Modifier and Type Field Description private static boolean
LOG_THREAD_DESTRUCTION
private Hk2ThreadLocal<PerThreadContext.PerContextThreadWrapper>
threadMap
-
Constructor Summary
Constructors Constructor Description PerThreadContext()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
containsKey(ActiveDescriptor<?> descriptor)
Determines if this context has a value for the given keyvoid
destroyOne(ActiveDescriptor<?> descriptor)
This method is called whenServiceHandle.destroy()
method is called.<U> U
findOrCreate(ActiveDescriptor<U> activeDescriptor, ServiceHandle<?> root)
Creates a contextual instance of this ActiveDescriptor by calling its create method if there is no other matching contextual instance.java.lang.Class<? extends java.lang.annotation.Annotation>
getScope()
The scope for which this is the contextboolean
isActive()
True if this context is active, false otherwisevoid
shutdown()
Shut down this context.boolean
supportsNullCreation()
Returns true if the findOrCreate method can return null
-
-
-
Field Detail
-
LOG_THREAD_DESTRUCTION
private static final boolean LOG_THREAD_DESTRUCTION
-
threadMap
private final Hk2ThreadLocal<PerThreadContext.PerContextThreadWrapper> threadMap
-
-
Method Detail
-
getScope
public java.lang.Class<? extends java.lang.annotation.Annotation> getScope()
Description copied from interface:Context
The scope for which this is the context
-
findOrCreate
public <U> U findOrCreate(ActiveDescriptor<U> activeDescriptor, ServiceHandle<?> root)
Description copied from interface:Context
Creates a contextual instance of this ActiveDescriptor by calling its create method if there is no other matching contextual instance. If there is already a contextual instance it is returned. If parent is null then this must work like the find call- Specified by:
findOrCreate
in interfaceContext<PerThread>
- Parameters:
activeDescriptor
- The descriptor to use when creating instancesroot
- The extended provider for the outermost parent being created- Returns:
- A context instance. This value may NOT be null
-
containsKey
public boolean containsKey(ActiveDescriptor<?> descriptor)
Description copied from interface:Context
Determines if this context has a value for the given key- Specified by:
containsKey
in interfaceContext<PerThread>
- Parameters:
descriptor
- The descriptor to look for in this context- Returns:
- true if this context has a value associated with this descriptor
-
isActive
public boolean isActive()
Description copied from interface:Context
True if this context is active, false otherwise
-
supportsNullCreation
public boolean supportsNullCreation()
Description copied from interface:Context
Returns true if the findOrCreate method can return null- Specified by:
supportsNullCreation
in interfaceContext<PerThread>
- Returns:
- true if null is a legal value from the findOrCreate method
-
shutdown
public void shutdown()
Description copied from interface:Context
Shut down this context.
-
destroyOne
public void destroyOne(ActiveDescriptor<?> descriptor)
Description copied from interface:Context
This method is called whenServiceHandle.destroy()
method is called. It is up to the context implementation whether or not to honor this destruction request based on the lifecycle requirements of the context- Specified by:
destroyOne
in interfaceContext<PerThread>
- Parameters:
descriptor
- A non-null descriptor upon whichServiceHandle.destroy()
has been called
-
-