Interface MessageCondition<T>

Type Parameters:
T - the kind of condition that this condition can be combined with or compared to
All Known Implementing Classes:
AbstractMessageCondition, CompositeMessageCondition, DestinationPatternsMessageCondition, RSocketFrameTypeMessageCondition, SimpMessageMappingInfo, SimpMessageTypeMessageCondition

public interface MessageCondition<T>
Contract for mapping conditions to messages.

Message conditions can be combined (for example, type + method-level conditions), matched to a specific Message, as well as compared to each other in the context of a Message to determine which one matches a request more closely.

Since:
4.0
Author:
Rossen Stoyanchev
  • Method Summary

    Modifier and Type
    Method
    Description
    combine(T other)
    Define the rules for combining this condition with another.
    int
    compareTo(T other, Message<?> message)
    Compare this condition to another in the context of a specific message.
    Check if this condition matches the given Message and returns a potentially new condition with content tailored to the current message.
  • Method Details

    • combine

      T combine(T other)
      Define the rules for combining this condition with another. For example combining type- and method-level conditions.
      Parameters:
      other - the condition to combine with
      Returns:
      the resulting message condition
    • getMatchingCondition

      @Nullable T getMatchingCondition(Message<?> message)
      Check if this condition matches the given Message and returns a potentially new condition with content tailored to the current message. For example a condition with destination patterns might return a new condition with sorted, matching patterns only.
      Returns:
      a condition instance in case of a match; or null if there is no match.
    • compareTo

      int compareTo(T other, Message<?> message)
      Compare this condition to another in the context of a specific message. It is assumed both instances have been obtained via getMatchingCondition(Message) to ensure they have content relevant to current message only.