Package org.glassfish.hk2.api
Interface Context<T>
-
- Type Parameters:
T
- This must be the type for which this is a context. For example, if your scope is SecureScope, then your context must implement Context<SecureScope>
- All Known Implementing Classes:
ConfiguredByContext
,ImmediateContext
,InheritableThreadContext
,OperationContext
,PerLookupContext
,PerThreadContext
,RunLevelContext
,SingletonContext
@Contract public interface Context<T>
An implementation of this must be put into the system in order to create contextual instances of services. If there is more than one active implementation available for the same scope on the same thread a runtime exception will be thrown when the scope is accessed.An implementation of Context must be in the Singleton scope
-
-
Method Summary
All Methods Instance Methods Abstract 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
-
-
-
Method Detail
-
getScope
java.lang.Class<? extends java.lang.annotation.Annotation> getScope()
The scope for which this is the context- Returns:
- may not return null, must return the scope for which this is a context
-
findOrCreate
<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. If there is already a contextual instance it is returned. If parent is null then this must work like the find call- 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
boolean containsKey(ActiveDescriptor<?> descriptor)
Determines if this context has a value for the given key- Parameters:
descriptor
- The descriptor to look for in this context- Returns:
- true if this context has a value associated with this descriptor
-
destroyOne
void destroyOne(ActiveDescriptor<?> descriptor)
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- Parameters:
descriptor
- A non-null descriptor upon whichServiceHandle.destroy()
has been called
-
supportsNullCreation
boolean supportsNullCreation()
Returns true if the findOrCreate method can return null- Returns:
- true if null is a legal value from the findOrCreate method
-
isActive
boolean isActive()
True if this context is active, false otherwise- Returns:
- true if this context is active, false otherwise
-
shutdown
void shutdown()
Shut down this context.
-
-