ProcessBean
Date: 2015-09-11

javax.enterprise.inject.spi

## Interface ProcessBean<X>

- Type Parameters:
    `X` - The class of the bean
  All Known Subinterfaces:
    ProcessManagedBean<X>, ProcessProducerField<T,X>, ProcessProducerMethod<T,X>, ProcessSessionBean<X>

      public interface ProcessBean<X>

  The container fires an event of this type for each enabled bean, interceptor or decorator deployed in a bean archive, before registering the `Bean` object.

  The event object type depends upon what kind of bean was discovered:

  - For a managed bean with bean class X, the container must raise an event of type `ProcessManagedBean`.
  - For a session bean with bean class X, the container must raise an event of type `ProcessSessionBean`.
  - For a producer method with method return type X of a bean with bean class T, the container must raise an event of type `ProcessProducerMethod`.
  - For a producer field with field type X of a bean with bean class T, the container must raise an event of type `ProcessProducerField`.

  Resources are considered to be producer fields.

  If any observer method of a `ProcessBean` event throws an exception, the exception is treated as a definition error by the container.

  See Also:
    `Bean`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addDefinitionError(java.lang.Throwable t)` Registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.
    `Annotated` | `getAnnotated()` Returns the `AnnotatedType` representing the bean class, the `AnnotatedMethod` representing the producer method, or the `AnnotatedField` representing the producer field.
    `Bean<X>` | `getBean()` Returns the `Bean` object that is about to be registered.

- - ### Method Detail

    - #### getAnnotated

          Annotated getAnnotated()

      Returns the `AnnotatedType` representing the bean class, the `AnnotatedMethod` representing the producer method, or the `AnnotatedField` representing the producer field.
      Returns:
        the `AnnotatedType` for the bean being registered

    - #### getBean

          Bean<X> getBean()

      Returns the `Bean` object that is about to be registered. The `Bean` may implement `Interceptor` or `Decorator`.
      Returns:
        the `Bean` object about to be registered

    - #### addDefinitionError

          void addDefinitionError(java.lang.Throwable t)

      Registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.
      Parameters:
        `t` - The definition error to register as a `Throwable`