Interface BeanConfigurator<T>

Type Parameters:
T - the class of the bean instance

public interface BeanConfigurator<T>
This API is an helper to configure a new Bean instance. CDI container must provides an implementation of this interface. This builder is not thread safe and shall not be used concurrently.

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

Since:
2.0
Author:
Martin Kouba, Antoine Sabot-Durand
See Also:
  • Method Details Link icon

    • beanClass Link icon

      BeanConfigurator<T> beanClass(Class<?> beanClass)
      Set the class of the configured Bean. If not set, the extension class is used.
      Parameters:
      beanClass - class of the configured bean
      Returns:
      self
    • addInjectionPoint Link icon

      BeanConfigurator<T> addInjectionPoint(InjectionPoint injectionPoint)
      Add an InjectionPoint to the configured bean
      Parameters:
      injectionPoint - the injectionPoint to add
      Returns:
      self
    • addInjectionPoints Link icon

      BeanConfigurator<T> addInjectionPoints(InjectionPoint... injectionPoints)
      Add InjectionPoints to the configured bean
      Parameters:
      injectionPoints - the injectionPoints to add
      Returns:
      self
    • addInjectionPoints Link icon

      BeanConfigurator<T> addInjectionPoints(Set<InjectionPoint> injectionPoints)
      Add InjectionPoints to the configured bean
      Parameters:
      injectionPoints - the injectionPoints to add
      Returns:
      self
    • injectionPoints Link icon

      BeanConfigurator<T> injectionPoints(InjectionPoint... injectionPoints)
      Replace InjectionPoints for the configured bean
      Parameters:
      injectionPoints - the injectionPoints for the configured bean
      Returns:
      self
    • injectionPoints Link icon

      BeanConfigurator<T> injectionPoints(Set<InjectionPoint> injectionPoints)
      Replace InjectionPoints for the configured bean
      Parameters:
      injectionPoints - the injectionPoints for the configured bean
      Returns:
      self
    • id Link icon

      Make the configured bean implements PassivationCapable and its Id for passivation.
      Parameters:
      id - for
      Returns:
      self
      See Also:
    • createWith Link icon

      <U extends T> BeanConfigurator<U> createWith(Function<CreationalContext<U>,U> callback)
      Set a callback to create a bean instance.
      Type Parameters:
      U - instance type
      Parameters:
      callback - the callback to create the instance
      Returns:
      self
      See Also:
    • produceWith Link icon

      <U extends T> BeanConfigurator<U> produceWith(Function<Instance<Object>,U> callback)
      Set a callback to create a bean instance.

      The Instance argument might be used to simulate producer method parameter injection. However, dependent scoped bean instances obtained from Instance during the callback execution remain managed until the produced bean instance is destroyed. Therefore, applications are encouraged to always destroy unneeded dependent scoped bean instances obtained from Instance.

      Type Parameters:
      U - instance type
      Parameters:
      callback - the callback to create the instance
      Returns:
      self
    • destroyWith Link icon

      BeanConfigurator<T> destroyWith(BiConsumer<T,CreationalContext<T>> callback)
      Set a callback to destroy a bean instance.

      If no destroy callback is specified, a NOOP callback is automatically set.

      Parameters:
      callback - the callback to destroy the instance
      Returns:
      self
    • disposeWith Link icon

      BeanConfigurator<T> disposeWith(BiConsumer<T,Instance<Object>> callback)
      Set a callback to destroy a bean instance.

      If no dispose callback is specified, a NOOP callback is automatically set.

      The Instance argument might be used to simulate disposer method parameter injection. All dependent scoped bean instances obtained from Instance during the callback execution are destroyed when the execution completes.

      Parameters:
      callback - the callback to dispose the instance
      Returns:
      self
    • read Link icon

      <U extends T> BeanConfigurator<U> read(AnnotatedType<U> type)
      Read the information from the given annotated type. All relevant information is overwritten.
      Type Parameters:
      U - instance type
      Parameters:
      type - class to read information from
      Returns:
      self
    • read Link icon

      BeanConfigurator<T> read(BeanAttributes<?> beanAttributes)
      Read the information from the given bean attributes. All relevant information is overwritten.
      Parameters:
      beanAttributes - beanAttributes to read information from
      Returns:
      self
    • addType Link icon

      BeanConfigurator<T> addType(Type type)
      Add a type to the bean types
      Parameters:
      type - the type to add
      Returns:
      self
    • addType Link icon

      BeanConfigurator<T> addType(TypeLiteral<?> typeLiteral)
      Add a type to the bean types
      Parameters:
      typeLiteral - the type to add
      Returns:
      self
    • addTypes Link icon

      BeanConfigurator<T> addTypes(Type... types)
      Add types to the bean types
      Parameters:
      types - types to add
      Returns:
      self
    • addTypes Link icon

      BeanConfigurator<T> addTypes(Set<Type> types)
      Add types to the bean types
      Parameters:
      types - types to add
      Returns:
      self
    • addTransitiveTypeClosure Link icon

      BeanConfigurator<T> addTransitiveTypeClosure(Type type)
      Adds an unrestricted set of bean types for the given type as if it represented a bean class of a managed bean. Illegal bean types are omitted.
      Parameters:
      type - to build the closure from
      Returns:
      self
    • types Link icon

      BeanConfigurator<T> types(Type... types)
      Replace bean types
      Parameters:
      types - the types of the configured bean
      Returns:
      self
    • types Link icon

      BeanConfigurator<T> types(Set<Type> types)
      Replace bean types
      Parameters:
      types - the types of the configured bean
      Returns:
      self
    • scope Link icon

      BeanConfigurator<T> scope(Class<? extends Annotation> scope)
      Replace Bean scope
      Parameters:
      scope - new scope for the configured bean
      Returns:
      self
    • addQualifier Link icon

      BeanConfigurator<T> addQualifier(Annotation qualifier)
      Add a qualifier to the configured bean
      Parameters:
      qualifier - qualifier to add
      Returns:
      self
    • addQualifiers Link icon

      BeanConfigurator<T> addQualifiers(Annotation... qualifiers)
      Add qualifiers to the bean.
      Parameters:
      qualifiers - qualifiers to add
      Returns:
      self
    • addQualifiers Link icon

      BeanConfigurator<T> addQualifiers(Set<Annotation> qualifiers)
      Add qualifiers to the bean.
      Parameters:
      qualifiers - qualifiers to add
      Returns:
      self
    • qualifiers Link icon

      BeanConfigurator<T> qualifiers(Annotation... qualifiers)
      Replace all qualifiers.
      Parameters:
      qualifiers - qualifiers for the build bean
      Returns:
      self
    • qualifiers Link icon

      BeanConfigurator<T> qualifiers(Set<Annotation> qualifiers)
      Replace all qualifiers.
      Parameters:
      qualifiers - for the configured bean
      Returns:
      self
    • addStereotype Link icon

      BeanConfigurator<T> addStereotype(Class<? extends Annotation> stereotype)
      Add a stereotype to the configured bean
      Parameters:
      stereotype - stereotype to add
      Returns:
      self
    • addStereotypes Link icon

      BeanConfigurator<T> addStereotypes(Set<Class<? extends Annotation>> stereotypes)
      Add stereotypes to the configured bean
      Parameters:
      stereotypes - stereotypes to add
      Returns:
      self
    • stereotypes Link icon

      BeanConfigurator<T> stereotypes(Set<Class<? extends Annotation>> stereotypes)
      Replace stereotypes on the configured bean
      Parameters:
      stereotypes - for the configured bean
      Returns:
      self
    • name Link icon

      BeanConfigurator<T> name(String name)
      Set the name of the configured bean
      Parameters:
      name - name for the configured bean
      Returns:
      self
    • alternative Link icon

      BeanConfigurator<T> alternative(boolean value)
      Change the alternative status of the configured bean. By default the configured bean is not an alternative.
      Parameters:
      value - value for alternative property
      Returns:
      self
    • priority Link icon

      BeanConfigurator<T> priority(int priority)
      Set the priority of the configured bean. By default, the configured bean does not have a priority.

      This is equivalent to putting the Priority annotation to an actual bean class or making a custom Bean class implement Prioritized.

      This method has no effect if the configured bean is not an alternative.

      Parameters:
      priority - the priority value
      Returns:
      self