Context
Date: 2015-09-11

javax.enterprise.context.spi

## Interface Context

-     public interface Context

  Provides an operation for obtaining contextual instances with a particular scope of any contextual type. Any instance of `Context` is called a context object.

  The context object is responsible for creating and destroying contextual instances by calling operations of `Contextual`. In particular, the context object is responsible for destroying any contextual instance it creates by passing the instance to `Contextual.destroy(Object, CreationalContext)`. A destroyed instance must not subsequently be returned by `get()`. The context object must pass the same instance of `CreationalContext` to `Contextual.destroy()` that it passed to `Contextual.create()` when it created the instance.

  A custom context object may be registered with the container using `AfterBeanDiscovery.addContext(Context)`.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T> T` | `get(Contextual<T> contextual)` Return an existing instance of a certain contextual type or a null value.
    `<T> T` | `get(Contextual<T> contextual, CreationalContext<T> creationalContext)` Return an existing instance of certain contextual type or create a new instance by calling `Contextual.create(CreationalContext)` and return the new instance.
    `java.lang.Class<? extends java.lang.annotation.Annotation>` | `getScope()` Get the scope type of the context object.
    `boolean` | `isActive()` Determines if the context object is active.

- - ### Method Detail

    - #### getScope

          java.lang.Class<? extends java.lang.annotation.Annotation> getScope()

      Get the scope type of the context object.
      Returns:
        the scope

    - #### get

          <T> T get(Contextual<T> contextual,
                  CreationalContext<T> creationalContext)

      Return an existing instance of certain contextual type or create a new instance by calling `Contextual.create(CreationalContext)` and return the new instance.
      Type Parameters:
        `T` - the type of contextual type
      Parameters:
        `contextual` - the contextual type
        `creationalContext` - the context in which the new instance will be created
      Returns:
        the contextual instance
      Throws:
        `ContextNotActiveException` - if the context is not active

    - #### get

          <T> T get(Contextual<T> contextual)

      Return an existing instance of a certain contextual type or a null value.
      Type Parameters:
        `T` - the type of the contextual type
      Parameters:
        `contextual` - the contextual type
      Returns:
        the contextual instance, or a null value
      Throws:
        `ContextNotActiveException` - if the context is not active

    - #### isActive

          boolean isActive()

      Determines if the context object is active.
      Returns:
        `true` if the context is active, or `false` otherwise.