Class DestinationPatternsMessageCondition
java.lang.Object
org.springframework.messaging.handler.AbstractMessageCondition<DestinationPatternsMessageCondition>
org.springframework.messaging.handler.DestinationPatternsMessageCondition
- All Implemented Interfaces:
MessageCondition<DestinationPatternsMessageCondition>
public class DestinationPatternsMessageCondition
extends AbstractMessageCondition<DestinationPatternsMessageCondition>
MessageCondition
to match the destination header of a Message
against one or more patterns through a RouteMatcher
.- Since:
- 4.0
- Author:
- Rossen Stoyanchev
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
The name of the "lookup destination" header. -
Constructor Summary
ConstructorDescriptionDestinationPatternsMessageCondition
(String... patterns) Constructor with patterns only.DestinationPatternsMessageCondition
(String[] patterns, PathMatcher matcher) Constructor with patterns and aPathMatcher
instance.DestinationPatternsMessageCondition
(String[] patterns, RouteMatcher routeMatcher) Constructor with patterns and aRouteMatcher
instance. -
Method Summary
Modifier and TypeMethodDescriptionReturns a new instance with URL patterns from the current instance ("this") and the "other" instance as follows: If there are patterns in both instances, combine the patterns in "this" with the patterns in "other" usingPathMatcher.combine(String, String)
.int
compareTo
(DestinationPatternsMessageCondition other, Message<?> message) Compare the two conditions based on the destination patterns they contain.protected Collection<String>
Return the collection of objects the message condition is composed of (for example, destination patterns), nevernull
.getMatchingCondition
(Message<?> message) Check if any of the patterns match the given Message destination and return an instance that is guaranteed to contain matching patterns, sorted viaPathMatcher.getPatternComparator(String)
.protected String
The notation to use when printing discrete items of content.Methods inherited from class org.springframework.messaging.handler.AbstractMessageCondition
equals, hashCode, toString
-
Field Details
-
LOOKUP_DESTINATION_HEADER
The name of the "lookup destination" header.- See Also:
-
-
Constructor Details
-
DestinationPatternsMessageCondition
Constructor with patterns only. Creates and uses an instance ofAntPathMatcher
with default settings.Non-empty patterns that don't start with "/" are prepended with "/".
- Parameters:
patterns
- the URL patterns to match to, or if 0 then always match
-
DestinationPatternsMessageCondition
Constructor with patterns and aPathMatcher
instance.- Parameters:
patterns
- the URL patterns to match to, or if 0 then always matchmatcher
- thePathMatcher
to use
-
DestinationPatternsMessageCondition
Constructor with patterns and aRouteMatcher
instance.- Parameters:
patterns
- the URL patterns to match to, or if 0 then always matchrouteMatcher
- theRouteMatcher
to use- Since:
- 5.2
-
-
Method Details
-
getPatterns
-
getContent
Description copied from class:AbstractMessageCondition
Return the collection of objects the message condition is composed of (for example, destination patterns), nevernull
.- Specified by:
getContent
in classAbstractMessageCondition<DestinationPatternsMessageCondition>
-
getToStringInfix
Description copied from class:AbstractMessageCondition
The notation to use when printing discrete items of content. For example " || " for URL patterns or " && " for param expressions.- Specified by:
getToStringInfix
in classAbstractMessageCondition<DestinationPatternsMessageCondition>
-
combine
Returns a new instance with URL patterns from the current instance ("this") and the "other" instance as follows:- If there are patterns in both instances, combine the patterns in "this" with
the patterns in "other" using
PathMatcher.combine(String, String)
. - If only one instance has patterns, use them.
- If neither instance has patterns, use an empty String (i.e. "").
- Parameters:
other
- the condition to combine with- Returns:
- the resulting message condition
- If there are patterns in both instances, combine the patterns in "this" with
the patterns in "other" using
-
getMatchingCondition
Check if any of the patterns match the given Message destination and return an instance that is guaranteed to contain matching patterns, sorted viaPathMatcher.getPatternComparator(String)
.- Parameters:
message
- the message to match to- Returns:
- the same instance if the condition contains no patterns;
or a new condition with sorted matching patterns;
or
null
either if a destination can not be extracted or there is no match
-
compareTo
Compare the two conditions based on the destination patterns they contain. Patterns are compared one at a time, from top to bottom viaPathMatcher.getPatternComparator(String)
. If all compared patterns match equally, but one instance has more patterns, it is considered a closer match.It is assumed that both instances have been obtained via
getMatchingCondition(Message)
to ensure they contain only patterns that match the request and are sorted with the best matches on top.
-