public final class RequestConditionHolder extends AbstractRequestCondition<RequestConditionHolder>
RequestCondition
useful when the type of the request
condition is not known ahead of time, e.g. custom condition. Since this
class is also an implementation of RequestCondition
, effectively it
decorates the held request condition and allows it to be combined and compared
with other request conditions in a type and null safe way.
When two RequestConditionHolder
instances are combined or compared
with each other, it is expected the conditions they hold are of the same type.
If they are not, a ClassCastException
is raised.
Constructor and Description |
---|
RequestConditionHolder(RequestCondition<?> requestCondition)
Create a new holder to wrap the given request condition.
|
Modifier and Type | Method and Description |
---|---|
RequestConditionHolder |
combine(RequestConditionHolder other)
Combine the request conditions held by the two RequestConditionHolder
instances after making sure the conditions are of the same type.
|
int |
compareTo(RequestConditionHolder other,
ServerWebExchange exchange)
Compare the request conditions held by the two RequestConditionHolder
instances after making sure the conditions are of the same type.
|
RequestCondition<?> |
getCondition()
Return the held request condition, or
null if not holding one. |
protected Collection<?> |
getContent()
Return the discrete items a request condition is composed of.
|
RequestConditionHolder |
getMatchingCondition(ServerWebExchange exchange)
Get the matching condition for the held request condition wrap it in a
new RequestConditionHolder instance.
|
protected String |
getToStringInfix()
The notation to use when printing discrete items of content.
|
equals, hashCode, isEmpty, toString
public RequestConditionHolder(@Nullable RequestCondition<?> requestCondition)
requestCondition
- the condition to hold (may be null
)@Nullable public RequestCondition<?> getCondition()
null
if not holding one.protected Collection<?> getContent()
AbstractRequestCondition
For example URL patterns, HTTP request methods, param expressions, etc.
getContent
in class AbstractRequestCondition<RequestConditionHolder>
null
)protected String getToStringInfix()
AbstractRequestCondition
For example " || "
for URL patterns or " && "
for param expressions.
getToStringInfix
in class AbstractRequestCondition<RequestConditionHolder>
public RequestConditionHolder combine(RequestConditionHolder other)
other
- the condition to combine with.public RequestConditionHolder getMatchingCondition(ServerWebExchange exchange)
null
otherwise.public int compareTo(RequestConditionHolder other, ServerWebExchange exchange)