org.springframework.web.reactive.result.condition

## Interface RequestCondition<T>

Type Parameters:
  `T` - the type of objects that this RequestCondition can be combined with and compared to

All Known Implementing Classes:
  AbstractRequestCondition, CompositeRequestCondition, ConsumesRequestCondition, HeadersRequestCondition, ParamsRequestCondition, PatternsRequestCondition, ProducesRequestCondition, RequestConditionHolder, RequestMappingInfo, RequestMethodsRequestCondition

    public interface RequestCondition<T>

Contract for request mapping conditions.

Request conditions can be combined via `combine(Object)`, matched to a request via `getMatchingCondition(ServerWebExchange)`, and compared to each other via `compareTo(Object, ServerWebExchange)` to determine which is a closer match for a given request.

Since:
  5.0
Author:
  Rossen Stoyanchev

### Method Summary

All Methods Instance Methods Abstract Methods
`T` `combine(T other)` Combine this condition with another such as conditions from a type-level and method-level `@RequestMapping` annotation.
`int` `compareTo(T other, org.springframework.web.server.ServerWebExchange exchange)` Compare this condition to another condition in the context of a specific request.
`T` `getMatchingCondition(org.springframework.web.server.ServerWebExchange exchange)` Check if the condition matches the request returning a potentially new instance created for the current request.

### Method Detail

#### combine

    T combine(T other)

Combine this condition with another such as conditions from a type-level and method-level `@RequestMapping` annotation.

Parameters:
  `other` - the condition to combine with.
Returns:
  a request condition instance that is the result of combining the two condition instances.

#### getMatchingCondition

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

Check if the condition matches the request returning a potentially new instance created for the current request. For example a condition with multiple URL patterns may return a new instance only with those patterns that match the request.

For CORS pre-flight requests, conditions should match to the would-be, actual request (e.g. URL pattern, query parameters, and the HTTP method from the "Access-Control-Request-Method" header). If a condition cannot be matched to a pre-flight request it should return an instance with empty content thus not causing a failure to match.

Returns:
  a condition instance in case of a match or `null` otherwise.

#### compareTo

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

Compare this condition to another condition in the context of a specific request. This method assumes both instances have been obtained via `getMatchingCondition(ServerWebExchange)` to ensure they have content relevant to current request only.