Interface BeforeBeanDiscovery


public interface BeforeBeanDiscovery

This event type is thrown by the container before the bean discovery process begins. If any observer method of the BeforeBeanDiscovery event throws an exception, the exception is treated as a definition error by the container.

CDI Lite implementations are not required to provide support for Portable Extensions.

Author:
Pete Muir, David Allen, Antoine Sabot-Durand
  • Method Details

    • addQualifier

      void addQualifier(Class<? extends Annotation> qualifier)

      Declares an annotation type as a Qualifier qualifier type.

      This is only required if you wish to make an annotation a qualifier without adding Qualifier to it.

      Parameters:
      qualifier - The annotation to treat as a qualifier
      Throws:
      IllegalStateException - if called outside of the observer method invocation
    • addQualifier

      void addQualifier(AnnotatedType<? extends Annotation> qualifier)

      Declares an annotation type as a Qualifier qualifier type.

      This is only required if you wish to make an annotation a qualifier without adding Qualifier to it.

      Parameters:
      qualifier - The annotation to treat as a qualifier
      Throws:
      IllegalStateException - if called outside of the observer method invocation
      Since:
      1.1
    • addScope

      void addScope(Class<? extends Annotation> scopeType, boolean normal, boolean passivating)

      Declares an annotation type as a scope type.

      This is only required if you wish to make an annotation a scope type without adding the NormalScope or Scope annotations to it. You can also use this method to override an existing normal scope definition.

      Parameters:
      scopeType - The annotation type to treat as a scope type
      normal - Indicates if the scope is normal
      passivating - Indicates if the scope is passivation capable
      Throws:
      IllegalStateException - if called outside of the observer method invocation
      See Also:
    • addStereotype

      void addStereotype(Class<? extends Annotation> stereotype, Annotation... stereotypeDef)

      Declares an annotation type as a stereotype, and specifies its meta-annotations.

      This is only required if you wish to make an annotation a stereotype without adding Stereotype to it. You can also use this method to override an existing stereotype definition.

      Parameters:
      stereotype - The annotation type to treat as a stereotype
      stereotypeDef - An optional list of annotations defining the stereotype
      Throws:
      IllegalStateException - if called outside of the observer method invocation
    • addInterceptorBinding

      void addInterceptorBinding(AnnotatedType<? extends Annotation> bindingType)

      Declares an annotation type as an interceptor binding type.

      This is only required if you wish to make an annotation an interceptor binding type without adding InterceptorBinding to it.

      Parameters:
      bindingType - The annotation type to treat as an interceptor binding type
      Throws:
      IllegalStateException - if called outside of the observer method invocation
    • addInterceptorBinding

      void addInterceptorBinding(Class<? extends Annotation> bindingType, Annotation... bindingTypeDef)

      Declares an annotation type as an interceptor binding type, and specifies its meta-annotations.

      This is only required if you wish to make an annotation an interceptor binding type without adding InterceptorBinding to it.

      Parameters:
      bindingType - The annotation type to treat as an interceptor binding type
      bindingTypeDef - An optional list of annotations defining the interceptor
      Throws:
      IllegalStateException - if called outside of the observer method invocation
      Since:
      1.1
    • addAnnotatedType

      void addAnnotatedType(AnnotatedType<?> type, String id)

      Adds a given AnnotatedType to the set of types which will be scanned during bean discovery.

      Thanks to the id parameter, this method allows multiple annotated types, based on the same underlying type, to be defined. AnnotatedTypes discovered by the container use the fully qualified class name of AnnotatedType.getJavaClass() to identify the type.

      AfterBeanDiscovery.getAnnotatedType(Class, String) and AfterBeanDiscovery.getAnnotatedTypes(Class) allows annotated types to be obtained by identifier.

      Parameters:
      type - The AnnotatedType to add for later scanning
      id - the identifier used to distinguish this AnnotatedType from an other one based on the same underlying type
      Throws:
      IllegalStateException - if called outside of the observer method invocation
      Since:
      1.1
    • addAnnotatedType

      <T> AnnotatedTypeConfigurator<T> addAnnotatedType(Class<T> type, String id)

      Obtains a new AnnotatedTypeConfigurator to configure a new AnnotatedType and add it to the set of types which will be scanned during bean discovery at the end of the observer invocation

      Thanks to the id parameter, this method allows multiple annotated types, based on the same underlying type, to be defined with a builder. AnnotatedTypes discovered by the container use the fully qualified class name of AnnotatedType.getJavaClass() to identify the type.

      AfterBeanDiscovery.getAnnotatedType(Class, String) and AfterBeanDiscovery.getAnnotatedTypes(Class) allows annotated types to be obtained by identifier.

      Each call returns a new AnnotatedTypeConfigurator
      Type Parameters:
      T - class type
      Parameters:
      type - class used to initialized the type and annotations on the AnnotatedTypeConfigurator
      id - the identifier used to distinguish this AnnotatedType from an other one based on the same underlying type
      Returns:
      a non reusable AnnotatedTypeConfigurator to configure the new AnnotatedType
      Throws:
      IllegalStateException - if called outside of the observer method invocation
      Since:
      2.0
    • configureQualifier

      <T extends Annotation> AnnotatedTypeConfigurator<T> configureQualifier(Class<T> qualifier)

      Obtains a new AnnotatedTypeConfigurator to configure a new AnnotatedType and declares it as a Qualifier qualifier type.

      This is only required if you wish to make an annotation a qualifier without adding Qualifier to it and need to easily add other annotations (like Nonbinding on its members.

      Type Parameters:
      T - qualifier type
      Parameters:
      qualifier - The annotation class used to initialized the configurator
      Returns:
      a non reusable AnnotatedTypeConfigurator to configure the qualifier
      Throws:
      IllegalStateException - if called outside of the observer method invocation
      Since:
      2.0
    • configureInterceptorBinding

      <T extends Annotation> AnnotatedTypeConfigurator<T> configureInterceptorBinding(Class<T> bindingType)

      Obtains a new AnnotatedTypeConfigurator to configure a new AnnotatedType and declares it as an interceptor binding type.

      This is only required if you wish to make an annotation an interceptor binding type without adding InterceptorBinding to it and need to easily add other annotations (like Nonbinding on its members.

      Type Parameters:
      T - binding class type
      Parameters:
      bindingType - The annotation class used to initialized the configurator
      Returns:
      a non reusable AnnotatedTypeConfigurator to configure the interceptor binding
      Throws:
      IllegalStateException - if called outside of the observer method invocation
      Since:
      2.0