org.springframework.web.servlet.mvc.condition

Class CompositeRequestCondition

  • All Implemented Interfaces:
    RequestCondition<CompositeRequestCondition>


    public class CompositeRequestCondition
    extends AbstractRequestCondition<CompositeRequestCondition>
    Implements the RequestCondition contract by delegating to multiple RequestCondition types and using a logical conjunction (' && ') to ensure all conditions match a given request.

    When CompositeRequestCondition instances are combined or compared they are expected to (a) contain the same number of conditions and (b) that conditions in the respective index are of the same type. It is acceptable to provide null conditions or no conditions at all to the constructor.

    Since:
    3.2
    Author:
    Rossen Stoyanchev
    • Constructor Detail

      • CompositeRequestCondition

        public CompositeRequestCondition(RequestCondition<?>... requestConditions)
        Create an instance with 0 or more RequestCondition types. It is important to create CompositeRequestCondition instances with the same number of conditions so they may be compared and combined. It is acceptable to provide null conditions.
    • Method Detail

      • getConditions

        public java.util.List<RequestCondition<?>> getConditions()
        Return the underlying conditions (possibly empty but never null).
      • combine

        public CompositeRequestCondition combine(CompositeRequestCondition other)
        If one instance is empty, return the other. If both instances have conditions, combine the individual conditions after ensuring they are of the same type and number.
        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 CompositeRequestCondition getMatchingCondition(HttpServletRequest request)
        Delegate to all contained conditions to match the request and return the resulting "matching" condition instances.

        An empty CompositeRequestCondition matches to all requests.

        Returns:
        a condition instance in case of a match or null otherwise.
      • compareTo

        public int compareTo(CompositeRequestCondition other,
                             HttpServletRequest request)
        If one instance is empty, the other "wins". If both instances have conditions, compare them in the order in which they were provided.