Interface Contextual<T>

Type Parameters:
T - type of the instance
All Known Subinterfaces:
Bean<T>, Decorator<T>, Interceptor<T>

public interface Contextual<T>

Defines operations to create and destroy contextual instances of a certain type. Any implementation of Contextual is called a contextual type. In particular, all beans are contextual types.

Author:
Gavin King, Nicklas Karlsson, Pete Muir
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    create(CreationalContext<T> creationalContext)
    Create a new instance of the contextual type.
    void
    destroy(T instance, CreationalContext<T> creationalContext)
    Destroy an instance of the contextual type.
  • Method Details

    • create

      T create(CreationalContext<T> creationalContext)
      Create a new instance of the contextual type. Instances should use the given CreationalContext when obtaining contextual references to inject, in order to ensure that any dependent objects are associated with the contextual instance that is being created. An implementation may call CreationalContext.push(Object) between instantiation and injection to help the container minimize the use of client proxy objects.
      Parameters:
      creationalContext - the context in which this instance is being created
      Returns:
      the contextual instance
      Throws:
      CreationException - if a checked exception occurs while creating the instance
    • destroy

      void destroy(T instance, CreationalContext<T> creationalContext)
      Destroy an instance of the contextual type. Implementations should call CreationalContext.release() to allow the container to destroy dependent objects of the contextual instance.
      Parameters:
      instance - the contextual instance to destroy
      creationalContext - the context in which this instance was created