- 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:
ImmediateContext
,InheritableThreadContext
,PerThreadContext
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
- Author:
- jwells
-
Method Summary
Modifier and TypeMethodDescriptionboolean
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.Class<? extends 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
Returns true if the findOrCreate method can return null
-
Method Details
-
getScope
Class<? extends 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
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
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
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.
-