Interface InjectableBean<T>

Type Parameters:
T -
All Superinterfaces:
jakarta.enterprise.inject.spi.Bean<T>, jakarta.enterprise.inject.spi.BeanAttributes<T>, jakarta.enterprise.context.spi.Contextual<T>, InjectableReferenceProvider<T>
All Known Subinterfaces:
InjectableDecorator<T>, InjectableInterceptor<T>
All Known Implementing Classes:
BeanManagerBean, BuiltInBean, EventBean, InitializedInterceptor, InjectionPointBean, InstanceBean

public interface InjectableBean<T> extends jakarta.enterprise.inject.spi.Bean<T>, InjectableReferenceProvider<T>
Quarkus representation of an injectable bean. This interface extends the standard CDI Bean interface.
Author:
Martin Kouba
  • Method Details

    • getIdentifier

      String getIdentifier()
      The identifier is generated by the container and is unique for a specific deployment.
      Returns:
      the identifier for this bean
    • getKind

      default InjectableBean.Kind getKind()
      Returns:
      the kind of the bean
      See Also:
    • getScope

      default Class<? extends Annotation> getScope()
      Specified by:
      getScope in interface jakarta.enterprise.inject.spi.BeanAttributes<T>
      Returns:
      the scope
    • getTypes

      Set<Type> getTypes()
      Specified by:
      getTypes in interface jakarta.enterprise.inject.spi.BeanAttributes<T>
      Returns:
      the set of bean types
    • getQualifiers

      default Set<Annotation> getQualifiers()
      Specified by:
      getQualifiers in interface jakarta.enterprise.inject.spi.BeanAttributes<T>
      Returns:
      the set of qualifiers
    • destroy

      default void destroy(T instance, jakarta.enterprise.context.spi.CreationalContext<T> creationalContext)
      Specified by:
      destroy in interface jakarta.enterprise.context.spi.Contextual<T>
    • getDeclaringBean

      default InjectableBean<?> getDeclaringBean()
      Returns:
      the declaring bean if the bean is a producer method/field, or null
    • getName

      default String getName()
      Specified by:
      getName in interface jakarta.enterprise.inject.spi.BeanAttributes<T>
    • getStereotypes

      default Set<Class<? extends Annotation>> getStereotypes()
      Specified by:
      getStereotypes in interface jakarta.enterprise.inject.spi.BeanAttributes<T>
    • getInjectionPoints

      default Set<jakarta.enterprise.inject.spi.InjectionPoint> getInjectionPoints()
      By default, this method always returns an empty set, because obtaining the set of injection points of a bean at application runtime is rarely useful.

      In the strict mode, this method works as described by the CDI specification. Feedback on usefulness of this method is welcome!

      Specified by:
      getInjectionPoints in interface jakarta.enterprise.inject.spi.Bean<T>
    • isAlternative

      default boolean isAlternative()
      Specified by:
      isAlternative in interface jakarta.enterprise.inject.spi.BeanAttributes<T>
    • getAlternativePriority

      default Integer getAlternativePriority()
      Returns:
      the priority if the bean is an alternative, or null
    • isDefaultBean

      default boolean isDefaultBean()
      Returns:
      whether or not the bean is a default bean
    • isSuppressed

      default boolean isSuppressed()
      Suppressed beans cannot be obtained by programmatic lookup via Instance.
      Returns:
      true if the bean should be suppressed
    • hasPriority

      default boolean hasPriority()
      Returns whether this bean has an explicitly assigned priority. This is typically done using the @Priority annotation.

      Calling getPriority() is not enough to determine if a bean has an explicitly assigned priority, because that method returns 0 when no priority was assigned. That is not distinguishable from a situation when a bean has explicitly assigned priority of 0.

      Returns:
      whether this bean has an explicitly assigned priority
    • getPriority

      default int getPriority()
      A bean may have a priority assigned.

      Class-based beans and producer beans can specify the priority declaratively via Priority. If no priority annotation is used then a bean has the priority of value 0.

      This priority is used to sort the resolved beans when performing programmatic lookup via Instance or when injecting a list of beans by means of the All qualifier.

      Returns:
      the priority
      See Also:
      • Priority
    • getImplementationClass

      default Class<?> getImplementationClass()
      The return value depends on the getKind().
      • For managed beans, interceptors, decorators and built-in beans, the bean class is returned.
      • For a producer method, the class of the return type is returned.
      • For a producer field, the class of the field is returned.
      • For a synthetic bean, the implementation class defined by the registrar is returned.
      Returns:
      the implementation class, or null in case of a producer of a primitive type or an array
      See Also:
    • isActive

      default boolean isActive()
      Equivalent to checkActive().value().
      See Also:
    • checkActive

      default ActiveResult checkActive()
      Returns whether this bean is active and if not, the reason why. Certain synthetic beans may be inactive from time to time. Attempting to inject or lookup such an inactive bean leads to InactiveBeanException.
      Returns:
      whether this bean is active and if not, the reason why