Class MultiHandlerEnhancerDefinition

java.lang.Object
org.axonframework.messaging.core.annotation.MultiHandlerEnhancerDefinition
All Implemented Interfaces:
HandlerEnhancerDefinition

public class MultiHandlerEnhancerDefinition extends Object implements HandlerEnhancerDefinition
HandlerEnhancerDefinition instance that delegates to multiple other instances, in the order provided.
Since:
3.3.0
Author:
Tyler Thrailkill
  • Constructor Details

    • MultiHandlerEnhancerDefinition

      public MultiHandlerEnhancerDefinition(HandlerEnhancerDefinition... delegates)
      Initializes an instance that delegates to the given delegates, in the order provided. Changes in the given array are not reflected in the created instance.
      Parameters:
      delegates - The enhancers providing the parameter values to use
    • MultiHandlerEnhancerDefinition

      public MultiHandlerEnhancerDefinition(Collection<HandlerEnhancerDefinition> delegates)
      Initializes an instance that delegates to the given delegates, in the order provided. Changes in the given List are not reflected in the created instance.
      Parameters:
      delegates - The list of enhancers providing the parameter values to use
  • Method Details

    • ordered

      public static MultiHandlerEnhancerDefinition ordered(HandlerEnhancerDefinition... delegates)
      Creates a MultiHandlerEnhancerDefinition instance with the given delegates, which are automatically ordered based on the @Priority annotation on their respective classes. Classes with the same Priority are kept in the order as provided in the delegates.

      If one of the delegates is a MultiHandlerEnhancerDefinition itself, that factory's delegates are 'mixed' with the given delegates, based on their respective order.

      Parameters:
      delegates - The delegates to include in the factory
      Returns:
      an instance delegating to the given delegates
    • ordered

      Creates a MultiHandlerEnhancerDefinition instance with the given delegates, which are automatically ordered based on the @Priority annotation on their respective classes. Classes with the same Priority are kept in the order as provided in the delegates.

      If one of the delegates is a MultiHandlerEnhancerDefinition itself, that factory's delegates are 'mixed' with the given delegates, based on their respective order.

      Parameters:
      delegates - The delegates to include in the factory
      Returns:
      an instance delegating to the given delegates
    • getDelegates

      public List<HandlerEnhancerDefinition> getDelegates()
      Returns the delegates of this instance, in the order they are evaluated to resolve parameters.
      Returns:
      the delegates of this instance, in the order they are evaluated to resolve parameters
    • wrapHandler

      public <T> MessageHandlingMember<T> wrapHandler(@Nonnull MessageHandlingMember<T> original)
      Description copied from interface: HandlerEnhancerDefinition
      Enhance the given original handler. Implementations may return the original message handler.
      Specified by:
      wrapHandler in interface HandlerEnhancerDefinition
      Type Parameters:
      T - The type of object that will perform the actual handling of the message
      Parameters:
      original - The original message handler
      Returns:
      The enhanced message handler