Package org.springframework.web.servlet.mvc.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`, `PathPatternsRequestCondition`, `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(HttpServletRequest)`, and compared to each other via `compareTo(Object, HttpServletRequest)` to determine which is a closer match for a given request.

Since:
  3.1
Author:
  Rossen Stoyanchev, Arjen Poutsma

## Method Summary

Modifier and Type
Method
Description
`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, HttpServletRequest request)`
Compare this condition to another condition in the context of a specific request.
`T`
`getMatchingCondition(HttpServletRequest request)`
Check if the condition matches the request returning a potentially new instance created for the current request.

## Method Details

### 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(HttpServletRequest request)
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 (for example, 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, HttpServletRequest request)
Compare this condition to another condition in the context of a specific request. This method assumes both instances have been obtained via `getMatchingCondition(HttpServletRequest)` to ensure they have content relevant to current request only.