Class MediaTypes
- java.lang.Object
-
- org.glassfish.jersey.message.internal.MediaTypes
-
public final class MediaTypes extends java.lang.Object
Common media types and functionality.
-
-
Field Summary
Fields Modifier and Type Field 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 java.util.function.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.
-
Constructor Summary
Constructors Modifier Constructor Description private
MediaTypes()
Prevents initialization.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.String
convertToString(java.lang.Iterable<javax.ws.rs.core.MediaType> mediaTypes)
Convert media types intoString
.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>
createFrom(javax.ws.rs.Consumes annotation)
Create an unmodifiable list of media types from the values declared in theConsumes
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 theProduces
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 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 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 commontype-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 (theirtype
andsubtype
are equal).
-
-
-
Field Detail
-
WADL_TYPE
public static final javax.ws.rs.core.MediaType WADL_TYPE
WADL Media type.
-
PARTIAL_ORDER_COMPARATOR
public static final 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. IOW, when used to sort a collection, the resulting collection can be iterated in a way that the more specific media types are preferred over the less specific ones: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
-
MEDIA_TYPE_LIST_COMPARATOR
public static final java.util.Comparator<java.util.List<? extends javax.ws.rs.core.MediaType>> MEDIA_TYPE_LIST_COMPARATOR
Comparator for lists of media types.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.
-
WILDCARD_TYPE_SINGLETON_LIST
public static final java.util.List<javax.ws.rs.core.MediaType> WILDCARD_TYPE_SINGLETON_LIST
A singleton list containing the wildcard media type.
-
WILDCARD_ACCEPTABLE_TYPE
public static final AcceptableMediaType WILDCARD_ACCEPTABLE_TYPE
An acceptable media type corresponding to a wildcard type.
-
WILDCARD_QS_TYPE
public static final QualitySourceMediaType WILDCARD_QS_TYPE
An acceptable media type corresponding to a wildcard type.
-
WILDCARD_QS_TYPE_SINGLETON_LIST
public static final java.util.List<javax.ws.rs.core.MediaType> WILDCARD_QS_TYPE_SINGLETON_LIST
A singleton list containing the wildcard media type.
-
WILDCARD_SUBTYPE_CACHE
private static final 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.
-
QUALITY_PARAM_FILTERING_PREDICATE
private static final java.util.function.Predicate<java.lang.String> QUALITY_PARAM_FILTERING_PREDICATE
Predicate for constructing filtering parameter maps that ignore the "q" and "qs" parameters.
-
-
Method Detail
-
typeEqual
public static boolean typeEqual(javax.ws.rs.core.MediaType m1, javax.ws.rs.core.MediaType m2)
Determine if the two media types are type-equal (theirtype
andsubtype
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
- Parameters:
m1
- first media type.m2
- second media type.- Returns:
true
if the two media types are of the same type and subtype,false
otherwise.
-
intersect
public 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 commontype-equal
sub-list.- Parameters:
ml1
- first media type list.ml2
- second media type list.- Returns:
true
if the two media type lists intersect by sharing a common type-equal sub-list,false
otherwise.
-
mostSpecific
public 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. The most specific media type is the media type from the pair that has least wild cards present, or has more parameters specified.- Parameters:
m1
- the first media type.m2
- the second media type.- Returns:
- the most specific media type. If the media types are equally specific then the first media type is returned.
-
createFrom
public 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 theConsumes
annotation.- Parameters:
annotation
- the Consumes annotation.- Returns:
- the list of
MediaType
, ordered according toPARTIAL_ORDER_COMPARATOR
.
-
createFrom
public 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 theProduces
annotation.- Parameters:
annotation
- the Produces annotation.- Returns:
- the list of
MediaType
, ordered according toPARTIAL_ORDER_COMPARATOR
.
-
createFrom
public 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.- Parameters:
mediaTypes
- the string array of media types.- Returns:
- the list of
MediaType
, ordered according toPARTIAL_ORDER_COMPARATOR
.
-
createQualitySourceMediaTypes
public 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.- Parameters:
mime
- the Produces annotation.- Returns:
- the list of
QualitySourceMediaType
, ordered according toQualitySourceMediaType.COMPARATOR
.
-
createQualitySourceMediaTypes
public static java.util.List<QualitySourceMediaType> createQualitySourceMediaTypes(java.lang.String[] mediaTypes)
Create a list of quality source media type from an array of media types.- Parameters:
mediaTypes
- the array of media types.- Returns:
- the list of
QualitySourceMediaType
, ordered according to the quality source as the primary key andPARTIAL_ORDER_COMPARATOR
as the secondary key.
-
getQuality
public static int getQuality(javax.ws.rs.core.MediaType mt)
Reads quality factor from given media type.- Parameters:
mt
- media type to read quality parameter from- Returns:
- quality factor of input media type
-
readQualityFactor
private static int readQualityFactor(java.lang.String qParam) throws java.lang.IllegalArgumentException
- Throws:
java.lang.IllegalArgumentException
-
stripQualityParams
public static javax.ws.rs.core.MediaType stripQualityParams(javax.ws.rs.core.MediaType mediaType)
Strips any quality parameters, i.e. q and qs from given media type.- Parameters:
mediaType
- type to strip quality parameters from- Returns:
- media type instance corresponding to the given one with quality parameters stripped off or the original instance if no such parameters are present
-
getTypeWildCart
public static javax.ws.rs.core.MediaType getTypeWildCart(javax.ws.rs.core.MediaType mediaType)
Returns MediaType with wildcard in subtype.- Parameters:
mediaType
- original MediaType.- Returns:
- MediaType with wildcard in subtype.
-
convertToString
public static java.lang.String convertToString(java.lang.Iterable<javax.ws.rs.core.MediaType> mediaTypes)
Convert media types intoString
. The result string contains media types in the same order, separated by comma ',' and enclosed into quotes. For example for input media typesMediaType.TEXT_PLAIN_TYPE
,MediaType.TEXT_PLAIN_TYPE
andMediaType.APPLICATION_JSON_TYPE
the result will be "text/plain", "application/json", "text/html".- Parameters:
mediaTypes
-iterable
withmedia types
.- Returns:
- Media types converted into String.
-
isWildcard
public static boolean isWildcard(javax.ws.rs.core.MediaType mediaType)
Check if the given media type is a wildcard type. A media type is considered to be a wildcard if either the media type's type or subtype is a wildcard type.- Parameters:
mediaType
- media type.- Returns:
true
if the media type is a wildcard type,false
otherwise.
-
-