Class ConsumesRequestCondition
- java.lang.Object
- org.springframework.web.reactive.result.condition.AbstractRequestCondition<ConsumesRequestCondition>
- org.springframework.web.reactive.result.condition.ConsumesRequestCondition
- All Implemented Interfaces:
RequestCondition<ConsumesRequestCondition>
public final class ConsumesRequestCondition extends AbstractRequestCondition<ConsumesRequestCondition>
A logical disjunction (' || ') request condition to match a request's 'Content-Type' header to a list of media type expressions. Two kinds of media type expressions are supported, which are described inRequestMapping.consumes()
andRequestMapping.headers()
where the header name is 'Content-Type'. Regardless of which syntax is used, the semantics are the same.- Since:
- 5.0
- Author:
- Rossen Stoyanchev
Constructor Summary
Constructors Constructor Description ConsumesRequestCondition(String... consumes)
Creates a new instance from 0 or more "consumes" expressions.ConsumesRequestCondition(String[] consumes, String[] headers)
Creates a new instance with "consumes" and "header" expressions.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ConsumesRequestCondition
combine(ConsumesRequestCondition other)
Returns the "other" instance if it has any expressions; returns "this" instance otherwise.int
compareTo(ConsumesRequestCondition other, ServerWebExchange exchange)
Returns: 0 if the two conditions have the same number of expressions Less than 0 if "this" has more or more specific media type expressions Greater than 0 if "other" has more or more specific media type expressionsSet<MediaType>
getConsumableMediaTypes()
Returns the media types for this condition excluding negated expressions.protected Collection<org.springframework.web.reactive.result.condition.ConsumesRequestCondition.ConsumeMediaTypeExpression>
getContent()
Return the discrete items a request condition is composed of.Set<MediaTypeExpression>
getExpressions()
Return the contained MediaType expressions.ConsumesRequestCondition
getMatchingCondition(ServerWebExchange exchange)
Checks if any of the contained media type expressions match the given request 'Content-Type' header and returns an instance that is guaranteed to contain matching expressions only.protected String
getToStringInfix()
The notation to use when printing discrete items of content.boolean
isBodyRequired()
Return the setting forsetBodyRequired(boolean)
.boolean
isEmpty()
Whether the condition has any media type expressions.void
setBodyRequired(boolean bodyRequired)
Whether this condition should expect requests to have a body.Methods inherited from class org.springframework.web.reactive.result.condition.AbstractRequestCondition
equals, hashCode, toString
Constructor Detail
ConsumesRequestCondition
public ConsumesRequestCondition(String... consumes)
Creates a new instance from 0 or more "consumes" expressions.- Parameters:
consumes
- expressions with the syntax described inRequestMapping.consumes()
; if 0 expressions are provided, the condition will match to every request
ConsumesRequestCondition
public ConsumesRequestCondition(String[] consumes, String[] headers)
Creates a new instance with "consumes" and "header" expressions. "Header" expressions where the header name is not 'Content-Type' or have no header value defined are ignored. If 0 expressions are provided in total, the condition will match to every request- Parameters:
consumes
- as described inRequestMapping.consumes()
headers
- as described inRequestMapping.headers()
Method Detail
getExpressions
public Set<MediaTypeExpression> getExpressions()
Return the contained MediaType expressions.
getConsumableMediaTypes
public Set<MediaType> getConsumableMediaTypes()
Returns the media types for this condition excluding negated expressions.
isEmpty
public boolean isEmpty()
Whether the condition has any media type expressions.- Overrides:
isEmpty
in classAbstractRequestCondition<ConsumesRequestCondition>
- Returns:
true
if empty;false
otherwise
getContent
protected Collection<org.springframework.web.reactive.result.condition.ConsumesRequestCondition.ConsumeMediaTypeExpression> 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 classAbstractRequestCondition<ConsumesRequestCondition>
- 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 classAbstractRequestCondition<ConsumesRequestCondition>
setBodyRequired
public void setBodyRequired(boolean bodyRequired)
Whether this condition should expect requests to have a body.By default this is set to
true
in which case it is assumed a request body is required and this condition matches to the "Content-Type" header or falls back on "Content-Type: application/octet-stream".If set to
false
, and the request does not have a body, then this condition matches automatically, i.e. without checking expressions.- Parameters:
bodyRequired
- whether requests are expected to have a body- Since:
- 5.2
isBodyRequired
public boolean isBodyRequired()
Return the setting forsetBodyRequired(boolean)
.- Since:
- 5.2
combine
public ConsumesRequestCondition combine(ConsumesRequestCondition other)
Returns the "other" instance if it has any expressions; returns "this" instance otherwise. Practically that means a method-level "consumes" overrides a type-level "consumes" condition.- Parameters:
other
- the condition to combine with.- Returns:
- a request condition instance that is the result of combining the two condition instances.
getMatchingCondition
public ConsumesRequestCondition getMatchingCondition(ServerWebExchange exchange)
Checks if any of the contained media type expressions match the given request 'Content-Type' header and returns an instance that is guaranteed to contain matching expressions only. The match is performed viaMediaType.includes(MediaType)
.- Parameters:
exchange
- the current exchange- Returns:
- the same instance if the condition contains no expressions; or a new condition with matching expressions only; or
null
if no expressions match.
compareTo
public int compareTo(ConsumesRequestCondition other, ServerWebExchange exchange)
Returns:- 0 if the two conditions have the same number of expressions
- Less than 0 if "this" has more or more specific media type expressions
- Greater than 0 if "other" has more or more specific media type expressions
It is assumed that both instances have been obtained via
getMatchingCondition(ServerWebExchange)
and each instance contains the matching consumable media type expression only or is otherwise empty.