public class MediaType extends java.lang.Object implements java.lang.Comparable<MediaType>
Consists of a type and a subtype.
Also has functionality to parse media types from a string using parseMediaType(String)
,
or multiple comma-separated media types using parseMediaTypes(String)
.
Modifier and Type | Field and Description |
---|---|
static MediaType |
ALL
Public constant media type that includes all media ranges (i.e.
|
static java.lang.String |
ALL_VALUE
A String equivalent of
ALL . |
static MediaType |
APPLICATION_ATOM_XML
Public constant media type for
application/atom+xml . |
static java.lang.String |
APPLICATION_ATOM_XML_VALUE
A String equivalent of
APPLICATION_ATOM_XML . |
static MediaType |
APPLICATION_FORM_URLENCODED
Public constant media type for
application/x-www-form-urlencoded . |
static java.lang.String |
APPLICATION_FORM_URLENCODED_VALUE
A String equivalent of
APPLICATION_FORM_URLENCODED . |
static MediaType |
APPLICATION_JSON
Public constant media type for
application/json . |
static java.lang.String |
APPLICATION_JSON_VALUE
A String equivalent of
APPLICATION_JSON . |
static MediaType |
APPLICATION_OCTET_STREAM
Public constant media type for
application/octet-stream . |
static java.lang.String |
APPLICATION_OCTET_STREAM_VALUE
A String equivalent of
APPLICATION_OCTET_STREAM . |
static MediaType |
APPLICATION_XHTML_XML
Public constant media type for
application/xhtml+xml . |
static java.lang.String |
APPLICATION_XHTML_XML_VALUE
A String equivalent of
APPLICATION_XHTML_XML . |
static MediaType |
APPLICATION_XML
Public constant media type for
application/xml . |
static java.lang.String |
APPLICATION_XML_VALUE
A String equivalent of
APPLICATION_XML . |
static MediaType |
IMAGE_GIF
Public constant media type for
image/gif . |
static java.lang.String |
IMAGE_GIF_VALUE
A String equivalent of
IMAGE_GIF . |
static MediaType |
IMAGE_JPEG
Public constant media type for
image/jpeg . |
static java.lang.String |
IMAGE_JPEG_VALUE
A String equivalent of
IMAGE_JPEG . |
static MediaType |
IMAGE_PNG
Public constant media type for
image/png . |
static java.lang.String |
IMAGE_PNG_VALUE
A String equivalent of
IMAGE_PNG . |
static MediaType |
MULTIPART_FORM_DATA
Public constant media type for
multipart/form-data . |
static java.lang.String |
MULTIPART_FORM_DATA_VALUE
A String equivalent of
MULTIPART_FORM_DATA . |
private static java.lang.String |
PARAM_CHARSET |
private static java.lang.String |
PARAM_QUALITY_FACTOR |
private java.util.Map<java.lang.String,java.lang.String> |
parameters |
static java.util.Comparator<MediaType> |
QUALITY_VALUE_COMPARATOR
Comparator used by
sortByQualityValue(List) . |
static java.util.Comparator<MediaType> |
SPECIFICITY_COMPARATOR
Comparator used by
sortBySpecificity(List) . |
private java.lang.String |
subtype |
static MediaType |
TEXT_HTML
Public constant media type for
text/html . |
static java.lang.String |
TEXT_HTML_VALUE
A String equivalent of
TEXT_HTML . |
static MediaType |
TEXT_PLAIN
Public constant media type for
text/plain . |
static java.lang.String |
TEXT_PLAIN_VALUE
A String equivalent of
TEXT_PLAIN . |
static MediaType |
TEXT_XML
Public constant media type for
text/xml . |
static java.lang.String |
TEXT_XML_VALUE
A String equivalent of
TEXT_XML . |
private static java.util.BitSet |
TOKEN |
private java.lang.String |
type |
private static java.lang.String |
WILDCARD_TYPE |
Constructor and Description |
---|
MediaType(MediaType other,
java.util.Map<java.lang.String,java.lang.String> parameters)
Copy-constructor that copies the type and subtype of the given
MediaType ,
and allows for different parameter. |
MediaType(java.lang.String type)
Create a new
MediaType for the given primary type. |
MediaType(java.lang.String type,
java.lang.String subtype)
Create a new
MediaType for the given primary type and subtype. |
MediaType(java.lang.String type,
java.lang.String subtype,
java.nio.charset.Charset charSet)
Create a new
MediaType for the given type, subtype, and character set. |
MediaType(java.lang.String type,
java.lang.String subtype,
double qualityValue)
Create a new
MediaType for the given type, subtype, and quality value. |
MediaType(java.lang.String type,
java.lang.String subtype,
java.util.Map<java.lang.String,java.lang.String> parameters)
Create a new
MediaType for the given type, subtype, and parameters. |
Modifier and Type | Method and Description |
---|---|
private void |
appendTo(java.util.Map<java.lang.String,java.lang.String> map,
java.lang.StringBuilder builder) |
private void |
appendTo(java.lang.StringBuilder builder) |
private void |
checkParameters(java.lang.String attribute,
java.lang.String value) |
private void |
checkToken(java.lang.String token)
Checks the given token string for illegal characters, as defined in RFC 2616, section 2.2.
|
int |
compareTo(MediaType other)
Compares this
MediaType to another alphabetically. |
MediaType |
copyQualityValue(MediaType mediaType)
Return a replica of this instance with the quality value of the given MediaType.
|
boolean |
equals(java.lang.Object other) |
java.nio.charset.Charset |
getCharSet()
Return the character set, as indicated by a
charset parameter, if any. |
java.lang.String |
getParameter(java.lang.String name)
Return a generic parameter value, given a parameter name.
|
java.util.Map<java.lang.String,java.lang.String> |
getParameters()
Return all generic parameter values.
|
double |
getQualityValue()
Return the quality value, as indicated by a
q parameter, if any. |
java.lang.String |
getSubtype()
Return the subtype.
|
java.lang.String |
getType()
Return the primary type.
|
int |
hashCode() |
boolean |
includes(MediaType other)
Indicate whether this
MediaType includes the given media type. |
boolean |
isCompatibleWith(MediaType other)
Indicate whether this
MediaType is compatible with the given media type. |
boolean |
isConcrete()
Indicates whether this media type is concrete, i.e.
|
private boolean |
isQuotedString(java.lang.String s) |
boolean |
isWildcardSubtype()
Indicates whether the subtype is the wildcard character
*
or the wildcard character followed by a sufiix (e.g. |
boolean |
isWildcardType()
Indicates whether the type is the wildcard character
* or not. |
static MediaType |
parseMediaType(java.lang.String mediaType)
Parse the given String into a single
MediaType . |
static java.util.List<MediaType> |
parseMediaTypes(java.lang.String mediaTypes)
Parse the given, comma-separated string into a list of
MediaType objects. |
MediaType |
removeQualityValue()
Return a replica of this instance with its quality value removed.
|
static void |
sortByQualityValue(java.util.List<MediaType> mediaTypes)
Sorts the given list of
MediaType objects by quality value. |
static void |
sortBySpecificity(java.util.List<MediaType> mediaTypes)
Sorts the given list of
MediaType objects by specificity. |
static void |
sortBySpecificityAndQuality(java.util.List<MediaType> mediaTypes)
Sorts the given list of
MediaType objects by specificity as the
primary criteria and quality value the secondary. |
java.lang.String |
toString() |
static java.lang.String |
toString(java.util.Collection<MediaType> mediaTypes)
Return a string representation of the given list of
MediaType objects. |
private java.lang.String |
unquote(java.lang.String s) |
static MediaType |
valueOf(java.lang.String value)
Parse the given String value into a
MediaType object,
with this method name following the 'valueOf' naming convention
(as supported by ConversionService . |
public static final MediaType ALL
*/*
).public static final java.lang.String ALL_VALUE
ALL
.public static final MediaType APPLICATION_ATOM_XML
application/atom+xml
.public static final java.lang.String APPLICATION_ATOM_XML_VALUE
APPLICATION_ATOM_XML
.public static final MediaType APPLICATION_FORM_URLENCODED
application/x-www-form-urlencoded
.public static final java.lang.String APPLICATION_FORM_URLENCODED_VALUE
APPLICATION_FORM_URLENCODED
.public static final MediaType APPLICATION_JSON
application/json
.public static final java.lang.String APPLICATION_JSON_VALUE
APPLICATION_JSON
.public static final MediaType APPLICATION_OCTET_STREAM
application/octet-stream
.public static final java.lang.String APPLICATION_OCTET_STREAM_VALUE
APPLICATION_OCTET_STREAM
.public static final MediaType APPLICATION_XHTML_XML
application/xhtml+xml
.public static final java.lang.String APPLICATION_XHTML_XML_VALUE
APPLICATION_XHTML_XML
.public static final MediaType APPLICATION_XML
application/xml
.public static final java.lang.String APPLICATION_XML_VALUE
APPLICATION_XML
.public static final MediaType IMAGE_GIF
image/gif
.public static final java.lang.String IMAGE_GIF_VALUE
IMAGE_GIF
.public static final MediaType IMAGE_JPEG
image/jpeg
.public static final java.lang.String IMAGE_JPEG_VALUE
IMAGE_JPEG
.public static final MediaType IMAGE_PNG
image/png
.public static final java.lang.String IMAGE_PNG_VALUE
IMAGE_PNG
.public static final MediaType MULTIPART_FORM_DATA
multipart/form-data
.public static final java.lang.String MULTIPART_FORM_DATA_VALUE
MULTIPART_FORM_DATA
.public static final MediaType TEXT_HTML
text/html
.public static final java.lang.String TEXT_HTML_VALUE
TEXT_HTML
.public static final MediaType TEXT_PLAIN
text/plain
.public static final java.lang.String TEXT_PLAIN_VALUE
TEXT_PLAIN
.public static final MediaType TEXT_XML
text/xml
.public static final java.lang.String TEXT_XML_VALUE
TEXT_XML
.private static final java.util.BitSet TOKEN
private static final java.lang.String WILDCARD_TYPE
private static final java.lang.String PARAM_QUALITY_FACTOR
private static final java.lang.String PARAM_CHARSET
private final java.lang.String type
private final java.lang.String subtype
private final java.util.Map<java.lang.String,java.lang.String> parameters
public static final java.util.Comparator<MediaType> SPECIFICITY_COMPARATOR
sortBySpecificity(List)
.public static final java.util.Comparator<MediaType> QUALITY_VALUE_COMPARATOR
sortByQualityValue(List)
.public MediaType(java.lang.String type)
MediaType
for the given primary type.
The subtype is set to *
, parameters empty.
type
- the primary typejava.lang.IllegalArgumentException
- if any of the parameters contain illegal characterspublic MediaType(java.lang.String type, java.lang.String subtype)
MediaType
for the given primary type and subtype.
The parameters are empty.
type
- the primary typesubtype
- the subtypejava.lang.IllegalArgumentException
- if any of the parameters contain illegal characterspublic MediaType(java.lang.String type, java.lang.String subtype, java.nio.charset.Charset charSet)
MediaType
for the given type, subtype, and character set.type
- the primary typesubtype
- the subtypecharSet
- the character setjava.lang.IllegalArgumentException
- if any of the parameters contain illegal characterspublic MediaType(java.lang.String type, java.lang.String subtype, double qualityValue)
MediaType
for the given type, subtype, and quality value.type
- the primary typesubtype
- the subtypequalityValue
- the quality valuejava.lang.IllegalArgumentException
- if any of the parameters contain illegal characterspublic MediaType(MediaType other, java.util.Map<java.lang.String,java.lang.String> parameters)
MediaType
,
and allows for different parameter.other
- the other media typeparameters
- the parameters, may be null
java.lang.IllegalArgumentException
- if any of the parameters contain illegal characterspublic MediaType(java.lang.String type, java.lang.String subtype, java.util.Map<java.lang.String,java.lang.String> parameters)
MediaType
for the given type, subtype, and parameters.type
- the primary typesubtype
- the subtypeparameters
- the parameters, may be null
java.lang.IllegalArgumentException
- if any of the parameters contain illegal charactersprivate void checkToken(java.lang.String token)
java.lang.IllegalArgumentException
- in case of illegal charactersprivate void checkParameters(java.lang.String attribute, java.lang.String value)
private boolean isQuotedString(java.lang.String s)
private java.lang.String unquote(java.lang.String s)
public java.lang.String getType()
public boolean isWildcardType()
*
or not.public java.lang.String getSubtype()
public boolean isWildcardSubtype()
*
or the wildcard character followed by a sufiix (e.g. *+xml
), or not.*
public boolean isConcrete()
*
.public java.nio.charset.Charset getCharSet()
charset
parameter, if any.null
if not availablepublic double getQualityValue()
q
parameter, if any.
Defaults to 1.0
.public java.lang.String getParameter(java.lang.String name)
name
- the parameter namenull
if not presentpublic java.util.Map<java.lang.String,java.lang.String> getParameters()
null
public boolean includes(MediaType other)
MediaType
includes the given media type.
For instance, text/*
includes text/plain
and text/html
, and application/*+xml
includes application/soap+xml
, etc. This method is not symmetric.
other
- the reference media type with which to comparetrue
if this media type includes the given media type; false
otherwisepublic boolean isCompatibleWith(MediaType other)
MediaType
is compatible with the given media type.
For instance, text/*
is compatible with text/plain
, text/html
, and vice versa.
In effect, this method is similar to includes(MediaType)
, except that it is symmetric.
other
- the reference media type with which to comparetrue
if this media type is compatible with the given media type; false
otherwisepublic MediaType copyQualityValue(MediaType mediaType)
public MediaType removeQualityValue()
public int compareTo(MediaType other)
MediaType
to another alphabetically.compareTo
in interface java.lang.Comparable<MediaType>
other
- media type to compare tosortBySpecificity(List)
public boolean equals(java.lang.Object other)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object
private void appendTo(java.lang.StringBuilder builder)
private void appendTo(java.util.Map<java.lang.String,java.lang.String> map, java.lang.StringBuilder builder)
public static MediaType valueOf(java.lang.String value)
MediaType
object,
with this method name following the 'valueOf' naming convention
(as supported by ConversionService
.parseMediaType(String)
public static MediaType parseMediaType(java.lang.String mediaType)
MediaType
.mediaType
- the string to parseInvalidMediaTypeException
- if the string cannot be parsedpublic static java.util.List<MediaType> parseMediaTypes(java.lang.String mediaTypes)
MediaType
objects.
This method can be used to parse an Accept or Content-Type header.
mediaTypes
- the string to parsejava.lang.IllegalArgumentException
- if the string cannot be parsedpublic static java.lang.String toString(java.util.Collection<MediaType> mediaTypes)
MediaType
objects.
This method can be used to for an Accept
or Content-Type
header.
mediaTypes
- the string to parsejava.lang.IllegalArgumentException
- if the String cannot be parsedpublic static void sortBySpecificity(java.util.List<MediaType> mediaTypes)
MediaType
objects by specificity.
Given two media types:
For example:
audio/basic < audio/* < */*
audio/* < audio/*;q=0.7; audio/*;q=0.3
audio/basic;level=1 < audio/basic
audio/basic == text/html
audio/basic == audio/wave
mediaTypes
- the list of media types to be sortedpublic static void sortByQualityValue(java.util.List<MediaType> mediaTypes)
MediaType
objects by quality value.
Given two media types:
mediaTypes
- the list of media types to be sortedgetQualityValue()
public static void sortBySpecificityAndQuality(java.util.List<MediaType> mediaTypes)
MediaType
objects by specificity as the
primary criteria and quality value the secondary.