Class OperationContext<T extends Annotation>

java.lang.Object
org.glassfish.hk2.extras.operation.OperationContext<T>
All Implemented Interfaces:
Context<T>

@Contract public abstract class OperationContext<T extends Annotation> extends Object implements Context<T>
The implementation of Context for an Operation.

An operation is defined as a unit of work that can be associated with one or more java threads, but where two operations of the same type may not be associated with the same thread at the same time. Examples of such an operation might be a RequestScope or a TenantRequesteOperation. An operation is a more general concept than the normal Java EE request scope, since it does not require a Java EE container

Users of this API generally create a Scope annotation and extend this class, implementing the Context.getScope() and making sure the parameterized type is the Scope annotation. The Scope annotation for an Operation is usually Proxiable but does not have to be. As with all implementations of Context the subclass of this class must be in the

invalid reference
SingletonInjectsPerRequest
scope. The user code then uses the OperationManager and OperationHandle to start and stop Operations and to associate and dis-associate threads with Operations

Classes extending this class may also choose to override the method Context.supportsNullCreation() which returns false by default

  • Field Details

  • Constructor Details

    • OperationContext

      public OperationContext()
  • Method Details

    • 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 interface Context<T extends Annotation>
      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

      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 interface Context<T extends Annotation>
      Parameters:
      descriptor - The descriptor to look for in this context
      Returns:
      true if this context has a value associated with this descriptor
    • destroyOne

      public void destroyOne(ActiveDescriptor<?> descriptor)
      Description copied from interface: Context
      This method is called when ServiceHandle.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 interface Context<T extends Annotation>
      Parameters:
      descriptor - A non-null descriptor upon which ServiceHandle.destroy() has been called
    • closeOperation

      public void closeOperation(OperationHandleImpl<T> operation)
    • shutdown

      public void shutdown()
      Description copied from interface: Context
      Shut down this context.
      Specified by:
      shutdown in interface Context<T extends Annotation>
    • supportsNullCreation

      public boolean supportsNullCreation()
      Description copied from interface: Context
      Returns true if the findOrCreate method can return null
      Specified by:
      supportsNullCreation in interface Context<T extends Annotation>
      Returns:
      true if null is a legal value from the findOrCreate method
    • isActive

      public boolean isActive()
      Description copied from interface: Context
      True if this context is active, false otherwise
      Specified by:
      isActive in interface Context<T extends Annotation>
      Returns:
      true if this context is active, false otherwise
    • setOperationManager

      public void setOperationManager(SingleOperationManager<T> manager)
    • toString

      public String toString()
      Overrides:
      toString in class Object