Class MediaType

java.lang.Object
jakarta.ws.rs.core.MediaType

public class MediaType extends Object
An abstraction for a media type. Instances are immutable.
Since:
1.0
Author:
Paul Sandoz, Marc Hadley
See Also:
  • Field Details

    • CHARSET_PARAMETER

      public static final String CHARSET_PARAMETER
      The media type charset parameter name.
      See Also:
    • MEDIA_TYPE_WILDCARD

      public static final String MEDIA_TYPE_WILDCARD
      The value of a type or subtype wildcard "*".
      See Also:
    • WILDCARD

      public static final String WILDCARD
      A String constant representing wildcard "*/*" media type .
      See Also:
    • WILDCARD_TYPE

      public static final MediaType WILDCARD_TYPE
      A MediaType constant representing wildcard "*/*" media type.
    • APPLICATION_XML

      public static final String APPLICATION_XML
      A String constant representing "application/xml" media type.
      See Also:
    • APPLICATION_XML_TYPE

      public static final MediaType APPLICATION_XML_TYPE
      A MediaType constant representing "application/xml" media type.
    • APPLICATION_ATOM_XML

      public static final String APPLICATION_ATOM_XML
      A String constant representing "application/atom+xml" media type.
      See Also:
    • APPLICATION_ATOM_XML_TYPE

      public static final MediaType APPLICATION_ATOM_XML_TYPE
      A MediaType constant representing "application/atom+xml" media type.
    • APPLICATION_XHTML_XML

      public static final String APPLICATION_XHTML_XML
      A String constant representing "application/xhtml+xml" media type.
      See Also:
    • APPLICATION_XHTML_XML_TYPE

      public static final MediaType APPLICATION_XHTML_XML_TYPE
      A MediaType constant representing "application/xhtml+xml" media type.
    • APPLICATION_SVG_XML

      @Deprecated(forRemoval=true) public static final String APPLICATION_SVG_XML
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 4.0, use a custom string instead. Will be removed in a future release of this API.
      A String constant representing "application/svg+xml" media type.
      See Also:
    • APPLICATION_SVG_XML_TYPE

      @Deprecated(forRemoval=true) public static final MediaType APPLICATION_SVG_XML_TYPE
      Deprecated, for removal: This API element is subject to removal in a future version.
      since 4.0, use a custom MediaType instead. Will be removed in a future release of this API.
      A MediaType constant representing "application/svg+xml" media type.
    • APPLICATION_JSON

      public static final String APPLICATION_JSON
      A String constant representing "application/json" media type.
      See Also:
    • APPLICATION_JSON_TYPE

      public static final MediaType APPLICATION_JSON_TYPE
      A MediaType constant representing "application/json" media type.
    • APPLICATION_FORM_URLENCODED

      public static final String APPLICATION_FORM_URLENCODED
      A String constant representing "application/x-www-form-urlencoded" media type.
      See Also:
    • APPLICATION_FORM_URLENCODED_TYPE

      public static final MediaType APPLICATION_FORM_URLENCODED_TYPE
      A MediaType constant representing "application/x-www-form-urlencoded" media type.
    • MULTIPART_FORM_DATA

      public static final String MULTIPART_FORM_DATA
      A String constant representing "multipart/form-data" media type.
      See Also:
    • MULTIPART_FORM_DATA_TYPE

      public static final MediaType MULTIPART_FORM_DATA_TYPE
      A MediaType constant representing "multipart/form-data" media type.
    • APPLICATION_OCTET_STREAM

      public static final String APPLICATION_OCTET_STREAM
      A String constant representing "application/octet-stream" media type.
      See Also:
    • APPLICATION_OCTET_STREAM_TYPE

      public static final MediaType APPLICATION_OCTET_STREAM_TYPE
      A MediaType constant representing "application/octet-stream" media type.
    • TEXT_PLAIN

      public static final String TEXT_PLAIN
      A String constant representing "text/plain" media type.
      See Also:
    • TEXT_PLAIN_TYPE

      public static final MediaType TEXT_PLAIN_TYPE
      A MediaType constant representing "text/plain" media type.
    • TEXT_XML

      public static final String TEXT_XML
      A String constant representing "text/xml" media type.
      See Also:
    • TEXT_XML_TYPE

      public static final MediaType TEXT_XML_TYPE
      A MediaType constant representing "text/xml" media type.
    • TEXT_HTML

      public static final String TEXT_HTML
      A String constant representing "text/html" media type.
      See Also:
    • TEXT_HTML_TYPE

      public static final MediaType TEXT_HTML_TYPE
      A MediaType constant representing "text/html" media type.
    • SERVER_SENT_EVENTS

      public static final String SERVER_SENT_EVENTS
      String representation of Server sent events media type. (""text/event-stream"").
      See Also:
    • SERVER_SENT_EVENTS_TYPE

      public static final MediaType SERVER_SENT_EVENTS_TYPE
      Server sent events media type.
    • APPLICATION_JSON_PATCH_JSON

      public static final String APPLICATION_JSON_PATCH_JSON
      String representation of "application/json-patch+json" media type..
      See Also:
    • APPLICATION_JSON_PATCH_JSON_TYPE

      public static final MediaType APPLICATION_JSON_PATCH_JSON_TYPE
      A MediaType constant representing "application/json-patch+json" media type.
    • APPLICATION_MERGE_PATCH_JSON

      public static final String APPLICATION_MERGE_PATCH_JSON
      String representation of "application/merge-patch+json" media type..
      See Also:
    • APPLICATION_MERGE_PATCH_JSON_TYPE

      public static final MediaType APPLICATION_MERGE_PATCH_JSON_TYPE
      A MediaType constant representing "application/merge-patch+json" media type.
  • Constructor Details

    • MediaType

      public MediaType(String type, String subtype, Map<String,String> parameters)
      Creates a new instance of MediaType with the supplied type, subtype and parameters.
      Parameters:
      type - the primary type, null is equivalent to MEDIA_TYPE_WILDCARD.
      subtype - the subtype, null is equivalent to MEDIA_TYPE_WILDCARD.
      parameters - a map of media type parameters, null is the same as an empty map.
    • MediaType

      public MediaType(String type, String subtype)
      Creates a new instance of MediaType with the supplied type and subtype.
      Parameters:
      type - the primary type, null is equivalent to MEDIA_TYPE_WILDCARD
      subtype - the subtype, null is equivalent to MEDIA_TYPE_WILDCARD
    • MediaType

      public MediaType(String type, String subtype, String charset)
      Creates a new instance of MediaType with the supplied type, subtype and "charset" parameter.
      Parameters:
      type - the primary type, null is equivalent to MEDIA_TYPE_WILDCARD
      subtype - the subtype, null is equivalent to MEDIA_TYPE_WILDCARD
      charset - the "charset" parameter value. If null or empty the "charset" parameter will not be set.
    • MediaType

      public MediaType()
      Creates a new instance of MediaType, both type and subtype are wildcards. Consider using the constant WILDCARD_TYPE instead.
  • Method Details

    • valueOf

      public static MediaType valueOf(String type)
      Creates a new instance of MediaType by parsing the supplied string.
      Parameters:
      type - the media type string.
      Returns:
      the newly created MediaType.
      Throws:
      IllegalArgumentException - if the supplied string cannot be parsed or is null.
    • getType

      public String getType()
      Getter for primary type.
      Returns:
      value of primary type.
    • isWildcardType

      public boolean isWildcardType()
      Checks if the primary type is a wildcard.
      Returns:
      true if the primary type is a wildcard.
    • getSubtype

      public String getSubtype()
      Getter for subtype.
      Returns:
      value of subtype.
    • isWildcardSubtype

      public boolean isWildcardSubtype()
      Checks if the subtype is a wildcard.
      Returns:
      true if the subtype is a wildcard.
    • getParameters

      public Map<String,String> getParameters()
      Getter for a read-only parameter map. Keys are case-insensitive.
      Returns:
      an immutable map of parameters.
    • withCharset

      public MediaType withCharset(String charset)
      Create a new MediaType instance with the same type, subtype and parameters copied from the original instance and the supplied "charset" parameter.
      Parameters:
      charset - the "charset" parameter value. If null or empty the "charset" parameter will not be set or updated.
      Returns:
      copy of the current MediaType instance with the "charset" parameter set to the supplied value.
      Since:
      2.0
    • isCompatible

      public boolean isCompatible(MediaType other)
      Check if this media type is compatible with another media type. Two media types are considered to be compatible if and only if their types are equal, or one of them has a wildcard type, and their subtypes are equal or one of them has a wildcard subtype. Media type parameters are ignored. The function is commutative.
      Parameters:
      other - the media type to compare with.
      Returns:
      true if the types are compatible, false otherwise.
    • equals

      public boolean equals(Object obj)

      Compares obj to this media type to see if they are the same by comparing type, subtype and parameters. Note that the case-sensitivity of parameter values is dependent on the semantics of the parameter name, see HTTP/1.1. This method assumes that values are case-sensitive.

      Note that the equals(...) implementation does not perform a class equality check (this.getClass() == obj.getClass()). Therefore any class that extends from MediaType class and needs to override one of the equals(...) and hashCode() methods must always override both methods to ensure the contract between Object.equals(java.lang.Object) and Object.hashCode() does not break.
      Overrides:
      equals in class Object
      Parameters:
      obj - the object to compare to.
      Returns:
      true if the two media types are the same, false otherwise.
    • hashCode

      public int hashCode()

      Generate a hash code from the type, subtype and parameters.

      Note that the equals(java.lang.Object) implementation does not perform a class equality check (this.getClass() == obj.getClass()). Therefore any class that extends from MediaType class and needs to override one of the equals(Object) and hashCode() methods must always override both methods to ensure the contract between Object.equals(java.lang.Object) and Object.hashCode() does not break.
      Overrides:
      hashCode in class Object
      Returns:
      a generated hash code.
    • toString

      public String toString()
      Convert the media type to a string suitable for use as the value of a corresponding HTTP header.
      Overrides:
      toString in class Object
      Returns:
      a string version of the media type.