Interface SyntheticObserverBuilder<T>

Type Parameters:
T - the observed event type of this synthetic observer

public interface SyntheticObserverBuilder<T>
Builder for synthetic observers. Instances are not reusable. For each synthetic observer, new instance must be created by SyntheticComponents.addObserver(Class) or SyntheticComponents.addObserver(Type).
Since:
4.0
  • Method Details

    • declaringClass

      SyntheticObserverBuilder<T> declaringClass(Class<?> declaringClass)
      Sets the bean class that "declares" this synthetic observer.

      If not called, the class declaring the extension which creates this synthetic observer is used.

      Parameters:
      declaringClass - bean class that "declares" this synthetic observer, must not be null
      Returns:
      this SyntheticObserverBuilder
      Throws:
      IllegalStateException - if this method is called multiple times
    • declaringClass

      SyntheticObserverBuilder<T> declaringClass(ClassInfo declaringClass)
      Sets the bean class that "declares" this synthetic observer.

      If not called, the class declaring the extension which creates this synthetic observer is used.

      Parameters:
      declaringClass - bean class that "declares" this synthetic observer, must not be null
      Returns:
      this SyntheticObserverBuilder
      Throws:
      IllegalStateException - if this method is called multiple times
    • qualifier

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

      If not called, this synthetic observer will have no qualifier.

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

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

      If not called, this synthetic observer will have no qualifier.

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

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

      If not called, this synthetic observer will have no qualifier.

      Parameters:
      qualifierAnnotation - the annotation, must not be null
      Returns:
      this SyntheticObserverBuilder
    • priority

      SyntheticObserverBuilder<T> priority(int priority)
      Sets a priority of this synthetic observer.

      If not called, this synthetic observer will have a default priority of Priority.APPLICATION + 500.

      Parameters:
      priority - the priority of this synthetic observer
      Returns:
      this SyntheticObserverBuilder
      Throws:
      IllegalStateException - if this method is called multiple times
    • async

      SyntheticObserverBuilder<T> async(boolean isAsync)
      Marks this synthetic observer as asynchronous if desired.

      If not called, this synthetic observer will not be asynchronous.

      Parameters:
      isAsync - whether this synthetic observer should be asynchronous
      Returns:
      this SyntheticObserverBuilder
      Throws:
      IllegalStateException - if this method is called multiple times
    • transactionPhase

      SyntheticObserverBuilder<T> transactionPhase(TransactionPhase transactionPhase)
      Sets the TransactionPhase during which this synthetic observer should be notified. If anything else than TransactionPhase.IN_PROGRESS is passed, this synthetic observer will be a transactional observer.

      If not called, this synthetic observer will not be a transactional observer. In other words, the default is TransactionPhase.IN_PROGRESS.

      Note that transactional observers cannot be asynchronous. If this synthetic observer is configured to be both transactional and asynchronous, its registration will fail.

      Parameters:
      transactionPhase - the TransactionPhase, must not be null
      Returns:
      this SyntheticObserverBuilder
      Throws:
      IllegalStateException - if this method is called multiple times
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, boolean value)
      Adds a boolean-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, boolean[] value)
      Adds a boolean array-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, int value)
      Adds an int-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, int[] value)
      Adds an int array-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, long value)
      Adds a long-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, long[] value)
      Adds a long array-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, double value)
      Adds a double-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, double[] value)
      Adds a double array-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, String value)
      Adds a String-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, String[] value)
      Adds a String array-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, Enum<?> value)
      Adds an enum-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, Enum<?>[] value)
      Adds an enum array-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, Class<?> value)
      Adds a Class-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, ClassInfo value)
      Adds a Class-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.

      When looked up from the parameter map in the event notification 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 SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, Class<?>[] value)
      Adds a Class array-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, ClassInfo[] value)
      Adds a Class array-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.

      When looked up from the parameter map in the event notification 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 SyntheticObserverBuilder
    • withParam

      Adds an annotation-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.

      When looked up from the parameter map in the event notification 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 SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, Annotation value)
      Adds an annotation-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, AnnotationInfo[] value)
      Adds an annotation array-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.

      When looked up from the parameter map in the event notification 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 SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, Annotation[] value)
      Adds an annotation array-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.
      Parameters:
      key - the parameter key, must not be null
      value - the parameter value
      Returns:
      this SyntheticObserverBuilder
    • withParam

      SyntheticObserverBuilder<T> withParam(String key, InvokerInfo value)
      Adds an invoker-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.

      When looked up from the parameter map in the event notification function, the value will be an instance of Invoker, not an InvokerInfo.

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

      SyntheticObserverBuilder<T> withParam(String key, InvokerInfo[] value)
      Adds an invoker array-valued parameter to the parameter map. The parameter map is passed to the event notification function when the event is fired.

      When looked up from the parameter map in the event notification function, the values will be instances of Invoker, not InvokerInfo.

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

      SyntheticObserverBuilder<T> observeWith(Class<? extends SyntheticObserver<T>> observerClass)
      Sets the class of the synthetic observer event notification function. CDI container will create an instance of the event notification function every time when it needs to notify the synthetic observer. The class must be public and have a public zero-parameter constructor; it must not be a bean.

      If not called, the synthetic observer registration will fail.

      Parameters:
      observerClass - the event notification function class, must not be null
      Returns:
      this SyntheticObserverBuilder
      Throws:
      IllegalStateException - if this method is called multiple times