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:
PerLookupContext, PerThreadContext, RequestContext, RunLevelContext, SingletonContext, TenantScopedContext

@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

Author:
jwells

Method Summary
 boolean containsKey(ActiveDescriptor<?> descriptor)
          Determines if this context has a value for the given key
<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 context
 boolean isActive()
          True if this context is active, false otherwise
 void shutdown()
          Shut down this context.
 boolean supportsNullCreation()
          Returns true if the findOrCreate method can return null
 

Method Detail

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

<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 instances
root - 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

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.



Copyright © 2013 Oracle Corporation. All Rights Reserved.