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

  • 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.