Class RequestMethodsRequestCondition

java.lang.Object
org.springframework.web.servlet.mvc.condition.AbstractRequestCondition<RequestMethodsRequestCondition>
org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition
All Implemented Interfaces:
RequestCondition<RequestMethodsRequestCondition>

public final class RequestMethodsRequestCondition extends AbstractRequestCondition<RequestMethodsRequestCondition>
A logical disjunction (' || ') request condition that matches a request against a set of RequestMethods.
Since:
3.1
Author:
Arjen Poutsma, Rossen Stoyanchev
  • Constructor Details

    • RequestMethodsRequestCondition

      public RequestMethodsRequestCondition(RequestMethod... requestMethods)
      Create a new instance with the given request methods.
      Parameters:
      requestMethods - 0 or more HTTP request methods; if, 0 the condition will match to every request
  • Method Details

    • getMethods

      public Set<RequestMethod> getMethods()
      Returns all RequestMethods contained in this condition.
    • getContent

      protected Collection<RequestMethod> getContent()
      Description copied from class: AbstractRequestCondition
      Return the discrete items a request condition is composed of.

      For example URL patterns, HTTP request methods, param expressions, etc.

      Specified by:
      getContent in class AbstractRequestCondition<RequestMethodsRequestCondition>
      Returns:
      a collection of objects (never null)
    • getToStringInfix

      protected String getToStringInfix()
      Description copied from class: AbstractRequestCondition
      The notation to use when printing discrete items of content.

      For example " || " for URL patterns or " && " for param expressions.

      Specified by:
      getToStringInfix in class AbstractRequestCondition<RequestMethodsRequestCondition>
    • combine

      Returns a new instance with a union of the HTTP request methods from "this" and the "other" instance.
      Parameters:
      other - the condition to combine with.
      Returns:
      a request condition instance that is the result of combining the two condition instances.
    • getMatchingCondition

      @Nullable public RequestMethodsRequestCondition getMatchingCondition(HttpServletRequest request)
      Check if any of the HTTP request methods match the given request and return an instance that contains the matching HTTP request method only.
      Parameters:
      request - the current request
      Returns:
      the same instance if the condition is empty (unless the request method is HTTP OPTIONS), a new condition with the matched request method, or null if there is no match or the condition is empty and the request method is OPTIONS.
    • compareTo

      public int compareTo(RequestMethodsRequestCondition other, HttpServletRequest request)
      Returns:
      • 0 if the two conditions contain the same number of HTTP request methods
      • Less than 0 if "this" instance has an HTTP request method but "other" doesn't
      • Greater than 0 "other" has an HTTP request method but "this" doesn't

      It is assumed that both instances have been obtained via getMatchingCondition(HttpServletRequest) and therefore each instance contains the matching HTTP request method only or is otherwise empty.