Spring Framework

org.springframework.web.servlet.mvc.condition
Class CompositeRequestCondition

java.lang.Object
  extended by org.springframework.web.servlet.mvc.condition.AbstractRequestCondition<CompositeRequestCondition>
      extended by org.springframework.web.servlet.mvc.condition.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 Summary
CompositeRequestCondition(RequestCondition<?>... requestConditions)
          Create an instance with 0 or more RequestCondition types.
 
Method Summary
 CompositeRequestCondition combine(CompositeRequestCondition other)
          If one instance is empty, return the other.
 int compareTo(CompositeRequestCondition other, javax.servlet.http.HttpServletRequest request)
          If one instance is empty, the other "wins".
 java.util.List<RequestCondition<?>> getConditions()
          Return the underlying conditions, possibly empty but never null.
protected  java.util.Collection<?> getContent()
          Return the discrete items a request condition is composed of.
 CompositeRequestCondition getMatchingCondition(javax.servlet.http.HttpServletRequest request)
          Delegate to all contained conditions to match the request and return the resulting "matching" condition instances.
protected  java.lang.String getToStringInfix()
          The notation to use when printing discrete items of content.
 boolean isEmpty()
          Whether this instance contains 0 conditions or not.
 
Methods inherited from class org.springframework.web.servlet.mvc.condition.AbstractRequestCondition
equals, hashCode, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

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

isEmpty

public boolean isEmpty()
Whether this instance contains 0 conditions or not.


getConditions

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


getContent

protected java.util.Collection<?> 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<CompositeRequestCondition>
Returns:
a collection of objects, never null

getToStringInfix

protected java.lang.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<CompositeRequestCondition>

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

public CompositeRequestCondition getMatchingCondition(javax.servlet.http.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 if there is no match.

compareTo

public int compareTo(CompositeRequestCondition other,
                     javax.servlet.http.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.


Spring Framework