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

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and 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 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(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 (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,
                        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.