Class MediaType


  • public class MediaType
    extends java.lang.Object
    An abstraction for a media type. Instances are immutable.
    Since:
    1.0
    See Also:
    HTTP/1.1 section 3.7
    • Field Detail

      • CHARSET_PARAMETER

        public static final java.lang.String CHARSET_PARAMETER
        The media type charset parameter name.
        See Also:
        Constant Field Values
      • MEDIA_TYPE_WILDCARD

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

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

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

        public static final java.lang.String APPLICATION_XML
        A String constant representing "application/xml" media type.
        See Also:
        Constant Field Values
      • APPLICATION_ATOM_XML

        public static final java.lang.String APPLICATION_ATOM_XML
        A String constant representing "application/atom+xml" media type.
        See Also:
        Constant Field Values
      • APPLICATION_XHTML_XML

        public static final java.lang.String APPLICATION_XHTML_XML
        A String constant representing "application/xhtml+xml" media type.
        See Also:
        Constant Field Values
      • APPLICATION_SVG_XML

        public static final java.lang.String APPLICATION_SVG_XML
        A String constant representing "application/svg+xml" media type.
        See Also:
        Constant Field Values
      • APPLICATION_JSON

        public static final java.lang.String APPLICATION_JSON
        A String constant representing "application/json" media type.
        See Also:
        Constant Field Values
      • APPLICATION_FORM_URLENCODED

        public static final java.lang.String APPLICATION_FORM_URLENCODED
        A String constant representing "application/x-www-form-urlencoded" media type.
        See Also:
        Constant Field Values
      • MULTIPART_FORM_DATA

        public static final java.lang.String MULTIPART_FORM_DATA
        A String constant representing "multipart/form-data" media type.
        See Also:
        Constant Field Values
      • APPLICATION_OCTET_STREAM

        public static final java.lang.String APPLICATION_OCTET_STREAM
        A String constant representing "application/octet-stream" media type.
        See Also:
        Constant Field Values
      • TEXT_PLAIN

        public static final java.lang.String TEXT_PLAIN
        A String constant representing "text/plain" media type.
        See Also:
        Constant Field Values
      • TEXT_XML

        public static final java.lang.String TEXT_XML
        A String constant representing "text/xml" media type.
        See Also:
        Constant Field Values
      • TEXT_HTML

        public static final java.lang.String TEXT_HTML
        A String constant representing "text/html" media type.
        See Also:
        Constant Field Values
      • SERVER_SENT_EVENTS

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

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

        public static final java.lang.String APPLICATION_JSON_PATCH_JSON
        String representation of "application/json-patch+json" media type..
        See Also:
        Constant Field Values
    • Constructor Detail

      • MediaType

        public MediaType​(java.lang.String type,
                         java.lang.String subtype,
                         java.util.Map<java.lang.String,​java.lang.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​(java.lang.String type,
                         java.lang.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​(java.lang.String type,
                         java.lang.String subtype,
                         java.lang.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 Detail

      • valueOf

        public static MediaType valueOf​(java.lang.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:
        java.lang.IllegalArgumentException - if the supplied string cannot be parsed or is null.
      • getType

        public java.lang.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 java.lang.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 java.util.Map<java.lang.String,​java.lang.String> getParameters()
        Getter for a read-only parameter map. Keys are case-insensitive.
        Returns:
        an immutable map of parameters.
      • withCharset

        public MediaType withCharset​(java.lang.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. E.g. image/* is compatible with image/jpeg, image/png, etc. 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​(java.lang.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 {@link 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 java.lang.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 java.lang.Object
        Returns:
        a generated hash code.
      • toString

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