public class CompositeRequestCondition extends AbstractRequestCondition<CompositeRequestCondition>
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.
Modifier and Type | Field and Description |
---|---|
private RequestConditionHolder[] |
requestConditions |
Modifier | Constructor and Description |
---|---|
|
CompositeRequestCondition(RequestCondition<?>... requestConditions)
Create an instance with 0 or more
RequestCondition types. |
private |
CompositeRequestCondition(RequestConditionHolder[] requestConditions) |
Modifier and Type | Method and Description |
---|---|
private void |
assertNumberOfConditions(CompositeRequestCondition other) |
CompositeRequestCondition |
combine(CompositeRequestCondition other)
If one instance is empty, return the other.
|
int |
compareTo(CompositeRequestCondition other,
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.
|
private int |
getLength() |
CompositeRequestCondition |
getMatchingCondition(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.
|
private java.util.List<RequestCondition<?>> |
unwrap() |
private RequestConditionHolder[] |
wrap(RequestCondition<?>... rawConditions) |
equals, hashCode, toString
private final RequestConditionHolder[] requestConditions
public CompositeRequestCondition(RequestCondition<?>... requestConditions)
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.private CompositeRequestCondition(RequestConditionHolder[] requestConditions)
private RequestConditionHolder[] wrap(RequestCondition<?>... rawConditions)
public boolean isEmpty()
public java.util.List<RequestCondition<?>> getConditions()
null
.private java.util.List<RequestCondition<?>> unwrap()
protected java.util.Collection<?> getContent()
AbstractRequestCondition
getContent
in class AbstractRequestCondition<CompositeRequestCondition>
null
protected java.lang.String getToStringInfix()
AbstractRequestCondition
getToStringInfix
in class AbstractRequestCondition<CompositeRequestCondition>
private int getLength()
public CompositeRequestCondition combine(CompositeRequestCondition other)
other
- the condition to combine with.private void assertNumberOfConditions(CompositeRequestCondition other)
public CompositeRequestCondition getMatchingCondition(HttpServletRequest request)
An empty CompositeRequestCondition
matches to all requests.
null
if there is no matchpublic int compareTo(CompositeRequestCondition other, HttpServletRequest request)