public final class MediaTypes
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.util.Comparator<java.util.List<? extends javax.ws.rs.core.MediaType>> |
MEDIA_TYPE_LIST_COMPARATOR
Comparator for lists of media types.
|
static java.util.Comparator<javax.ws.rs.core.MediaType> |
PARTIAL_ORDER_COMPARATOR
A comparator for media types, that implements the "partial order" defined in the resource matching algorithm
section of the JAX-RS specification, except that this comparator is "inverted" so that it allows for natural
sorting in Java collections, where "lower" values are put to the front of a collection.
|
private static com.google.common.base.Predicate<java.lang.String> |
QUALITY_PARAM_FILTERING_PREDICATE
Predicate for constructing filtering parameter maps that ignore the "q" and "qs" parameters.
|
static javax.ws.rs.core.MediaType |
WADL_TYPE
WADL Media type.
|
static AcceptableMediaType |
WILDCARD_ACCEPTABLE_TYPE
An acceptable media type corresponding to a wildcard type.
|
static QualitySourceMediaType |
WILDCARD_QS_TYPE
An acceptable media type corresponding to a wildcard type.
|
static java.util.List<javax.ws.rs.core.MediaType> |
WILDCARD_QS_TYPE_SINGLETON_LIST
A singleton list containing the wildcard media type.
|
private static java.util.Map<java.lang.String,javax.ws.rs.core.MediaType> |
WILDCARD_SUBTYPE_CACHE
Cache containing frequently requested media type values with a wildcard subtype.
|
static java.util.List<javax.ws.rs.core.MediaType> |
WILDCARD_TYPE_SINGLETON_LIST
A singleton list containing the wildcard media type.
|
Modifier | Constructor and Description |
---|---|
private |
MediaTypes()
Prevents initialization.
|
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
convertToString(java.lang.Iterable<javax.ws.rs.core.MediaType> mediaTypes)
Convert media types into
String . |
static java.util.List<javax.ws.rs.core.MediaType> |
createFrom(javax.ws.rs.Consumes annotation)
Create an unmodifiable list of media types from the values declared in the
Consumes
annotation. |
static java.util.List<javax.ws.rs.core.MediaType> |
createFrom(javax.ws.rs.Produces annotation)
Create an unmodifiable list of media types from the values declared in the
Produces
annotation. |
static java.util.List<javax.ws.rs.core.MediaType> |
createFrom(java.lang.String[] mediaTypes)
Create an unmodifiable list of media type from a string array of media types.
|
static java.util.List<javax.ws.rs.core.MediaType> |
createQualitySourceMediaTypes(javax.ws.rs.Produces mime)
Create a list of quality source media type from the Produces annotation.
|
static java.util.List<QualitySourceMediaType> |
createQualitySourceMediaTypes(java.lang.String[] mediaTypes)
Create a list of quality source media type from an array of media types.
|
static int |
getQuality(javax.ws.rs.core.MediaType mt)
Reads quality factor from given media type.
|
static javax.ws.rs.core.MediaType |
getTypeWildCart(javax.ws.rs.core.MediaType mediaType)
Returns MediaType with wildcard in subtype.
|
static boolean |
intersect(java.util.List<? extends javax.ws.rs.core.MediaType> ml1,
java.util.List<? extends javax.ws.rs.core.MediaType> ml2)
Determine if the two list of media types share a common
type-equal
sub-list. |
static boolean |
isWildcard(javax.ws.rs.core.MediaType mediaType)
Check if the given media type is a wildcard type.
|
static javax.ws.rs.core.MediaType |
mostSpecific(javax.ws.rs.core.MediaType m1,
javax.ws.rs.core.MediaType m2)
Get the most specific media type from a pair of media types.
|
private static int |
readQualityFactor(java.lang.String qParam) |
static javax.ws.rs.core.MediaType |
stripQualityParams(javax.ws.rs.core.MediaType mediaType)
Strips any quality parameters, i.e.
|
static boolean |
typeEqual(javax.ws.rs.core.MediaType m1,
javax.ws.rs.core.MediaType m2)
Determine if the two media types are type-equal (their
type
and subtype are equal). |
public static final javax.ws.rs.core.MediaType WADL_TYPE
public static final java.util.Comparator<javax.ws.rs.core.MediaType> PARTIAL_ORDER_COMPARATOR
m/n < m/* < */*The actual media type values are ignored, i.e. the different media types are considered equal if they are comparably specific:
compare(m/n, x/y) == 0 compare(m/*, x/*) == 0
public static final java.util.Comparator<java.util.List<? extends javax.ws.rs.core.MediaType>> MEDIA_TYPE_LIST_COMPARATOR
The least specific content type of each list is obtained and then compared
using PARTIAL_ORDER_COMPARATOR
.
Assumes each list is already ordered according to PARTIAL_ORDER_COMPARATOR
and therefore the least specific media type is at the end of the list.
public static final java.util.List<javax.ws.rs.core.MediaType> WILDCARD_TYPE_SINGLETON_LIST
public static final AcceptableMediaType WILDCARD_ACCEPTABLE_TYPE
public static final QualitySourceMediaType WILDCARD_QS_TYPE
public static final java.util.List<javax.ws.rs.core.MediaType> WILDCARD_QS_TYPE_SINGLETON_LIST
private static final java.util.Map<java.lang.String,javax.ws.rs.core.MediaType> WILDCARD_SUBTYPE_CACHE
private static final com.google.common.base.Predicate<java.lang.String> QUALITY_PARAM_FILTERING_PREDICATE
public static boolean typeEqual(javax.ws.rs.core.MediaType m1, javax.ws.rs.core.MediaType m2)
type
and subtype
are equal). For example:
m/n == m/n m/n;p1 == m/n;p2 m/n != m/y m/n != x/n m/n != x/y
m1
- first media type.m2
- second media type.true
if the two media types are of the same type and subtype,
false
otherwise.public static boolean intersect(java.util.List<? extends javax.ws.rs.core.MediaType> ml1, java.util.List<? extends javax.ws.rs.core.MediaType> ml2)
type-equal
sub-list.ml1
- first media type list.ml2
- second media type list.true
if the two media type lists intersect by sharing a
common type-equal sub-list, false
otherwise.public static javax.ws.rs.core.MediaType mostSpecific(javax.ws.rs.core.MediaType m1, javax.ws.rs.core.MediaType m2)
m1
- the first media type.m2
- the second media type.public static java.util.List<javax.ws.rs.core.MediaType> createFrom(javax.ws.rs.Consumes annotation)
Consumes
annotation.annotation
- the Consumes annotation.MediaType
, ordered according to PARTIAL_ORDER_COMPARATOR
.public static java.util.List<javax.ws.rs.core.MediaType> createFrom(javax.ws.rs.Produces annotation)
Produces
annotation.annotation
- the Produces annotation.MediaType
, ordered according to PARTIAL_ORDER_COMPARATOR
.public static java.util.List<javax.ws.rs.core.MediaType> createFrom(java.lang.String[] mediaTypes)
mediaTypes
- the string array of media types.MediaType
, ordered according to PARTIAL_ORDER_COMPARATOR
.public static java.util.List<javax.ws.rs.core.MediaType> createQualitySourceMediaTypes(javax.ws.rs.Produces mime)
mime
- the Produces annotation.QualitySourceMediaType
, ordered according to
QualitySourceMediaType.COMPARATOR
.public static java.util.List<QualitySourceMediaType> createQualitySourceMediaTypes(java.lang.String[] mediaTypes)
mediaTypes
- the array of media types.QualitySourceMediaType
, ordered according to
the quality source as the primary key and PARTIAL_ORDER_COMPARATOR
as the secondary key.public static int getQuality(javax.ws.rs.core.MediaType mt)
mt
- media type to read quality parameter fromprivate static int readQualityFactor(java.lang.String qParam) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
public static javax.ws.rs.core.MediaType stripQualityParams(javax.ws.rs.core.MediaType mediaType)
mediaType
- type to strip quality parameters frompublic static javax.ws.rs.core.MediaType getTypeWildCart(javax.ws.rs.core.MediaType mediaType)
mediaType
- original MediaType.public static java.lang.String convertToString(java.lang.Iterable<javax.ws.rs.core.MediaType> mediaTypes)
String
. The result string contains
media types in the same order, separated by comma ',' and enclosed into quotes.
For example for input media types
MediaType.TEXT_PLAIN_TYPE
, MediaType.TEXT_PLAIN_TYPE
and
MediaType.APPLICATION_JSON_TYPE
the result will be
"text/plain", "application/json", "text/html".mediaTypes
- iterable
with media types
.public static boolean isWildcard(javax.ws.rs.core.MediaType mediaType)
mediaType
- media type.true
if the media type is a wildcard type, false
otherwise.