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.

  Author:
    David Allen
  See Also:
    `Bean`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addDefinitionError(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
      Throws:
        `IllegalStateException` - if called outside of the observer method invocation

    - #### 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
      Throws:
        `IllegalStateException` - if called outside of the observer method invocation *

    - #### addDefinitionError

          void addDefinitionError(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`
      Throws:
        `IllegalStateException` - if called outside of the observer method invocation

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.