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

java.lang.Object
  extended by org.springframework.web.servlet.mvc.condition.AbstractRequestCondition<ConsumesRequestCondition>
      extended by org.springframework.web.servlet.mvc.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 in RequestMapping.consumes() and RequestMapping.headers() where the header name is 'Content-Type'. Regardless of which syntax is used, the semantics are the same.

Since:
3.1
Author:
Arjen Poutsma, Rossen Stoyanchev

Constructor Summary
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
 ConsumesRequestCondition combine(ConsumesRequestCondition other)
          Returns the "other" instance if it has any expressions; returns "this" instance otherwise.
 int compareTo(ConsumesRequestCondition other, HttpServletRequest request)
          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
 Set<MediaType> getConsumableMediaTypes()
          Returns the media types for this condition excluding negated expressions.
protected  Collection<org.springframework.web.servlet.mvc.condition.ConsumesRequestCondition.ConsumeMediaTypeExpression> getContent()
          Return the discrete items a request condition is composed of.
 Set<MediaTypeExpression> getExpressions()
          Return the contained MediaType expressions.
 ConsumesRequestCondition getMatchingCondition(HttpServletRequest request)
          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 isEmpty()
          Whether the condition has any media type expressions.
 
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

ConsumesRequestCondition

public ConsumesRequestCondition(String... consumes)
Creates a new instance from 0 or more "consumes" expressions.

Parameters:
consumes - expressions with the syntax described in RequestMapping.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 in RequestMapping.consumes()
headers - as described in RequestMapping.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.


getContent

protected Collection<org.springframework.web.servlet.mvc.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 class AbstractRequestCondition<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 class AbstractRequestCondition<ConsumesRequestCondition>

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.

getMatchingCondition

public ConsumesRequestCondition getMatchingCondition(HttpServletRequest request)
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 via MediaType.includes(MediaType).

Parameters:
request - the current request
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,
                     HttpServletRequest request)
Returns:

It is assumed that both instances have been obtained via getMatchingCondition(HttpServletRequest) and each instance contains the matching consumable media type expression only or is otherwise empty.