org.springframework.web.reactive.result.condition

## Class PatternsRequestCondition

- java.lang.Object
- - org.springframework.web.reactive.result.condition.AbstractRequestCondition<PatternsRequestCondition>
  - - org.springframework.web.reactive.result.condition.PatternsRequestCondition

All Implemented Interfaces:
  RequestCondition<PatternsRequestCondition>

    public final class PatternsRequestCondition
    extends AbstractRequestCondition<PatternsRequestCondition>

A logical disjunction (' || ') request condition that matches a request against a set of URL path patterns.

Since:
  5.0
Author:
  Rossen Stoyanchev, Brian Clozel

### Constructor Summary

Constructors
Constructor and Description
`PatternsRequestCondition(List<org.springframework.web.util.pattern.PathPattern> patterns)` Creates a new instance with the given URL patterns.
`PatternsRequestCondition(org.springframework.web.util.pattern.PathPattern... patterns)` Creates a new instance with the given URL patterns.

### Method Summary

All Methods Instance Methods Concrete Methods
`PatternsRequestCondition` `combine(PatternsRequestCondition other)` 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 `PathPattern.combine(PathPattern)`.
`int` `compareTo(PatternsRequestCondition other, org.springframework.web.server.ServerWebExchange exchange)` Compare the two conditions based on the URL patterns they contain.
`protected Collection<org.springframework.web.util.pattern.PathPattern>` `getContent()` Return the discrete items a request condition is composed of.
`PatternsRequestCondition` `getMatchingCondition(org.springframework.web.server.ServerWebExchange exchange)` Checks if any of the patterns match the given request and returns an instance that is guaranteed to contain matching patterns, sorted.
`Set<org.springframework.web.util.pattern.PathPattern>` `getPatterns()`
`protected String` `getToStringInfix()` The notation to use when printing discrete items of content.

### Methods inherited from class org.springframework.web.reactive.result.condition.AbstractRequestCondition

`equals, hashCode, isEmpty, toString`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### PatternsRequestCondition

    public PatternsRequestCondition(org.springframework.web.util.pattern.PathPattern... patterns)

Creates a new instance with the given URL patterns.

Parameters:
  `patterns` - 0 or more URL patterns; if 0 the condition will match to every request.

#### PatternsRequestCondition

    public PatternsRequestCondition(List<org.springframework.web.util.pattern.PathPattern> patterns)

Creates a new instance with the given URL patterns.

### Method Detail

#### getPatterns

    public Set<org.springframework.web.util.pattern.PathPattern> getPatterns()

#### getContent

    protected Collection<org.springframework.web.util.pattern.PathPattern> getContent()

Description copied from class: `AbstractRequestCondition`
Return the discrete items a request condition is composed of.

For example URL patterns, HTTP request methods, param expressions, etc.

Specified by:
  `getContent` in class `AbstractRequestCondition<PatternsRequestCondition>`
Returns:
  a collection of objects (never `null`)

#### getToStringInfix

    protected String getToStringInfix()

Description copied from class: `AbstractRequestCondition`
The notation to use when printing discrete items of content.

For example `" || "` for URL patterns or `" && "` for param expressions.

Specified by:
  `getToStringInfix` in class `AbstractRequestCondition<PatternsRequestCondition>`

#### combine

    public PatternsRequestCondition combine(PatternsRequestCondition other)

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 `PathPattern.combine(PathPattern)`.
- 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:
  a request condition instance that is the result of combining the two condition instances.

#### getMatchingCondition

    @Nullable
    public PatternsRequestCondition getMatchingCondition(org.springframework.web.server.ServerWebExchange exchange)

Checks if any of the patterns match the given request and returns an instance that is guaranteed to contain matching patterns, sorted.

Parameters:
  `exchange` - the current exchange
Returns:
  the same instance if the condition contains no patterns; or a new condition with sorted matching patterns; or `null` if no patterns match.

#### compareTo

    public int compareTo(PatternsRequestCondition other,
                         org.springframework.web.server.ServerWebExchange exchange)

Compare the two conditions based on the URL patterns they contain. Patterns are compared one at a time, from top to bottom. 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(ServerWebExchange)` to ensure they contain only patterns that match the request and are sorted with the best matches on top.