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

    Modifier and Type
    Method
    Description
    combine(T other)
    Combine this condition with another such as conditions from a type-level and method-level @RequestMapping annotation.
    int
    compareTo(T other, ServerWebExchange exchange)
    Compare this condition to another condition in the context of a specific 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(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, 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.