Package org.glassfish.hk2.internal
Class InheritableThreadContext
- java.lang.Object
-
- org.glassfish.hk2.internal.InheritableThreadContext
-
- All Implemented Interfaces:
Context<InheritableThread>
@Singleton @Visibility(LOCAL) public class InheritableThreadContext extends java.lang.Object implements Context<InheritableThread>
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classInheritableThreadContext.InheritableContextThreadWrapper
-
Field Summary
Fields Modifier and Type Field Description private static booleanLOG_THREAD_DESTRUCTIONprivate java.lang.InheritableThreadLocal<InheritableThreadContext.InheritableContextThreadWrapper>threadMap
-
Constructor Summary
Constructors Constructor Description InheritableThreadContext()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontainsKey(ActiveDescriptor<?> descriptor)Determines if this context has a value for the given keyvoiddestroyOne(ActiveDescriptor<?> descriptor)This method is called whenServiceHandle.destroy()method is called.<U> UfindOrCreate(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 contextbooleanisActive()True if this context is active, false otherwisevoidshutdown()Shut down this context.booleansupportsNullCreation()Returns true if the findOrCreate method can return null
-
-
-
Field Detail
-
LOG_THREAD_DESTRUCTION
private static final boolean LOG_THREAD_DESTRUCTION
-
threadMap
private java.lang.InheritableThreadLocal<InheritableThreadContext.InheritableContextThreadWrapper> threadMap
-
-
Method Detail
-
getScope
public java.lang.Class<? extends java.lang.annotation.Annotation> getScope()
Description copied from interface:ContextThe scope for which this is the context- Specified by:
getScopein interfaceContext<InheritableThread>- Returns:
- may not return null, must return the scope for which this is a context
-
findOrCreate
public <U> U findOrCreate(ActiveDescriptor<U> activeDescriptor, ServiceHandle<?> root)
Description copied from interface:ContextCreates 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:
findOrCreatein interfaceContext<InheritableThread>- 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:ContextDetermines if this context has a value for the given key- Specified by:
containsKeyin interfaceContext<InheritableThread>- 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:ContextTrue if this context is active, false otherwise- Specified by:
isActivein interfaceContext<InheritableThread>- Returns:
- true if this context is active, false otherwise
-
supportsNullCreation
public boolean supportsNullCreation()
Description copied from interface:ContextReturns true if the findOrCreate method can return null- Specified by:
supportsNullCreationin interfaceContext<InheritableThread>- Returns:
- true if null is a legal value from the findOrCreate method
-
shutdown
public void shutdown()
Description copied from interface:ContextShut down this context.- Specified by:
shutdownin interfaceContext<InheritableThread>
-
destroyOne
public void destroyOne(ActiveDescriptor<?> descriptor)
Description copied from interface:ContextThis 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:
destroyOnein interfaceContext<InheritableThread>- Parameters:
descriptor- A non-null descriptor upon whichServiceHandle.destroy()has been called
-
-