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, PatternsRequestCondition, ProducesRequestCondition, RequestConditionHolder, RequestMappingInfo, RequestMethodsRequestCondition

      public interface RequestCondition<T>

  The contract for request conditions in Spring MVC's mapping infrastructure.

  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 matches a request more closely.

  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)` Defines the rules for combining this condition (i.e.
    `int` | `compareTo(T other, HttpServletRequest request)` Compares this condition to another condition in the context of a specific request.
    `T` | `getMatchingCondition(HttpServletRequest request)` Checks if this condition matches the given request and returns a potentially new request condition with content tailored to the current request.

- - ### Method Detail

    - #### combine

          T combine(T other)

      Defines the rules for combining this condition (i.e. the current instance) with another condition. For example combining type- and method-level `RequestMapping` conditions.
      Parameters:
        `other` - the condition to combine with.
      Returns:
        a request condition instance that is the result of combining the two condition instances.

    - #### getMatchingCondition

          T getMatchingCondition(HttpServletRequest request)

      Checks if this condition matches the given request and returns a potentially new request condition with content tailored to the current request. For example a condition with URL patterns might return a new condition that contains matching patterns sorted with best matching patterns on top.
      Returns:
        a condition instance in case of a match; or `null` if there is no match

    - #### compareTo

          int compareTo(T other,
                        HttpServletRequest request)

      Compares 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.