Interface SyntheticBeanBuilder<T>

Type Parameters:
T - the bean class of this synthetic bean

public interface SyntheticBeanBuilder<T>
Builder for synthetic beans. Instances are not reusable. For each synthetic bean, new instance must be created by SyntheticComponents.addBean(Class).
Since:
4.0
  • Method Details

    • type

      SyntheticBeanBuilder<T> type(Class<?> type)
      Adds type to the set of bean types of this synthetic bean. This method may be called multiple times to add multiple bean types.

      If not called, the set of bean types of this synthetic bean will be a singleton set containing java.lang.Object.

      Parameters:
      type - the bean type, must not be null
      Returns:
      this SyntheticBeanBuilder
    • type

      Adds type to the set of bean types of this synthetic bean. This method may be called multiple times to add multiple bean types.

      If not called, the set of bean types of this synthetic bean will be a singleton set containing java.lang.Object.

      Parameters:
      type - the bean type, must not be null
      Returns:
      this SyntheticBeanBuilder
    • type

      Adds type to the set of bean types of this synthetic bean. This method may be called multiple times to add multiple bean types.

      If not called, the set of bean types of this synthetic bean will be a singleton set containing java.lang.Object.

      Parameters:
      type - the bean type, must not be null
      Returns:
      this SyntheticBeanBuilder
    • qualifier

      SyntheticBeanBuilder<T> qualifier(Class<? extends Annotation> annotationType)
      Adds a marker annotation of given type to the set of qualifiers of this synthetic bean. This method may be called multiple times to add multiple qualifiers.

      If not called, this synthetic bean will have the @Default qualifier (and the @Any qualifier that all beans have).

      Parameters:
      annotationType - the type of the marker annotation, must not be null
      Returns:
      this SyntheticBeanBuilder
    • qualifier

      SyntheticBeanBuilder<T> qualifier(AnnotationInfo qualifierAnnotation)
      Adds given annotation to the set of qualifiers of this synthetic bean. This method may be called multiple times to add multiple qualifiers.

      If not called, this synthetic bean will have the @Default qualifier (and the @Any qualifier that all beans have).

      Parameters:
      qualifierAnnotation - the annotation, must not be null
      Returns:
      this SyntheticBeanBuilder
    • qualifier

      SyntheticBeanBuilder<T> qualifier(Annotation qualifierAnnotation)
      Adds given annotation to the set of qualifiers of this synthetic bean. This method may be called multiple times to add multiple qualifiers.

      If not called, this synthetic bean will have the @Default qualifier (and the @Any qualifier that all beans have).

      Parameters:
      qualifierAnnotation - the annotation, must not be null
      Returns:
      this SyntheticBeanBuilder
    • scope

      SyntheticBeanBuilder<T> scope(Class<? extends Annotation> scopeAnnotation)
      Sets the scope of this synthetic bean to given scope type.

      If not called, this synthetic bean will be @Dependent.

      Parameters:
      scopeAnnotation - the scope type, must not be null
      Returns:
      this SyntheticBeanBuilder
      Throws:
      IllegalStateException - if this method is called multiple times
    • alternative

      SyntheticBeanBuilder<T> alternative(boolean isAlternative)
      Marks this synthetic bean as an alternative if desired. To make this synthetic bean an enabled alternative, call both alternative(true) and priority(some priority).

      If this synthetic bean is an alternative, not setting a priority means that it is not enabled, which is equivalent to not registering it at all.

      If not called, this synthetic bean will not be an alternative.

      Parameters:
      isAlternative - whether this synthetic bean should be an alternative
      Returns:
      this SyntheticBeanBuilder
      Throws:
      IllegalStateException - if this method is called multiple times
    • priority

      SyntheticBeanBuilder<T> priority(int priority)
      Sets a priority of this synthetic bean. To make this synthetic bean an enabled alternative, call both alternative(true) and priority(some priority).

      If this synthetic bean is an alternative, not setting a priority means that it is not enabled, which is equivalent to not registering it at all.

      If not called, this synthetic bean will not have a priority. If this synthetic bean is not an alternative, the priority is ignored.

      Parameters:
      priority - the priority of this synthetic bean
      Returns:
      this SyntheticBeanBuilder
      Throws:
      IllegalStateException - if this method is called multiple times
    • name

      SyntheticBeanBuilder<T> name(String beanName)
      Sets the bean name of this synthetic bean. If beanName is null, this synthetic bean will not have a name.

      If not called, this synthetic bean will not have a name.

      Parameters:
      beanName - the bean name of this synthetic bean
      Returns:
      this SyntheticBeanBuilder
      Throws:
      IllegalStateException - if this method is called multiple times
    • stereotype

      SyntheticBeanBuilder<T> stereotype(Class<? extends Annotation> stereotypeAnnotation)
      Adds stereotypeAnnotation to the set of stereotypes of this synthetic bean. This method may be called multiple times to add multiple stereotypes.

      If not called, this synthetic bean will have no stereotype.

      Parameters:
      stereotypeAnnotation - the stereotype, must not be null
      Returns:
      this SyntheticBeanBuilder
    • stereotype

      SyntheticBeanBuilder<T> stereotype(ClassInfo stereotypeAnnotation)
      Adds stereotypeAnnotation to the set of stereotypes of this synthetic bean. This method may be called multiple times to add multiple stereotypes.

      If not called, this synthetic bean will have no stereotype.

      Parameters:
      stereotypeAnnotation - the stereotype, must not be null
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, boolean value)
      Adds a boolean-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, boolean[] value)
      Adds a boolean array-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, int value)
      Adds an int-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, int[] value)
      Adds an int array-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, long value)
      Adds a long-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, long[] value)
      Adds a long array-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, double value)
      Adds a double-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, double[] value)
      Adds a double array-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, String value)
      Adds a String-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, String[] value)
      Adds a String array-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, Enum<?> value)
      Adds an enum-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, Enum<?>[] value)
      Adds an enum array-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, Class<?> value)
      Adds a Class-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, ClassInfo value)
      Adds a Class-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.

      When looked up from the parameter map in the creation/destruction function, the value will be an instance of Class, not a ClassInfo.

      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, Class<?>[] value)
      Adds a Class array-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, ClassInfo[] value)
      Adds a Class array-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.

      When looked up from the parameter map in the creation/destruction function, the values will be instances of Class, not ClassInfo.

      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, AnnotationInfo value)
      Adds an annotation-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.

      When looked up from the parameter map in the creation/destruction function, the value will be an instance of the annotation type, not an AnnotationInfo.

      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, Annotation value)
      Adds an annotation-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, AnnotationInfo[] value)
      Adds an annotation array-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.

      When looked up from the parameter map in the creation/destruction function, the values will be instances of the corresponding annotation types, not AnnotationInfo.

      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • withParam

      SyntheticBeanBuilder<T> withParam(String key, Annotation[] value)
      Adds an annotation array-valued parameter to the parameter map. The parameter map is passed to the creation and destruction functions when a bean instance is created/destroyed.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticBeanBuilder
    • createWith

      SyntheticBeanBuilder<T> createWith(Class<? extends SyntheticBeanCreator<T>> creatorClass)
      Sets the class of the synthetic bean creation function. CDI container will create an instance of the creation function every time when it needs to obtain an instance of the synthetic bean. The class must be public and have a public zero-parameter constructor; it must not be a bean.

      If not called, the synthetic bean registration will fail.

      Parameters:
      creatorClass - the creation function class, must not be null
      Returns:
      this SyntheticBeanBuilder
      Throws:
      IllegalStateException - if this method is called multiple times
    • disposeWith

      SyntheticBeanBuilder<T> disposeWith(Class<? extends SyntheticBeanDisposer<T>> disposerClass)
      Sets the class of the synthetic bean destruction function. CDI container will create an instance of the destruction function every time when it needs to destruction an instance of the synthetic bean. The class must be public and have a public zero-parameter constructor; it must not be a bean.

      If not called, a noop destruction function will be used.

      Parameters:
      disposerClass - the destruction function class, must not be null
      Returns:
      this SyntheticBeanBuilder
      Throws:
      IllegalStateException - if this method is called multiple times