Class MimeType

java.lang.Object
com.okta.commons.http.MimeType
All Implemented Interfaces:
Serializable, Comparable<MimeType>
Direct Known Subclasses:
MediaType

public class MimeType extends Object implements Comparable<MimeType>, Serializable
Represents a MIME Type, as originally defined in RFC 2046 and subsequently used in other Internet protocols including HTTP.

This class, however, does not contain support for the q-parameters used in HTTP content negotiation. Those can be found in the sub-class org.springframework.http.MediaType in the spring-web module.

Consists of a type and a subtype. Also has functionality to parse media types from a string using valueOf(String). For more parsing options see MimeTypeUtils.

Since:
4.0
Author:
Arjen Poutsma, Juergen Hoeller, Rossen Stoyanchev, Sam Brannen
See Also:
  • Field Details

  • Constructor Details

    • MimeType

      public MimeType(String type)
      Create a new MimeType for the given primary type.

      The subtype is set to "&#42;", and the parameters are empty.

      Parameters:
      type - the primary type
      Throws:
      IllegalArgumentException - if any of the parameters contains illegal characters
    • MimeType

      public MimeType(String type, String subtype)
      Create a new MimeType for the given primary type and subtype.

      The parameters are empty.

      Parameters:
      type - the primary type
      subtype - the subtype
      Throws:
      IllegalArgumentException - if any of the parameters contains illegal characters
    • MimeType

      public MimeType(String type, String subtype, Charset charset)
      Create a new MimeType for the given type, subtype, and character set.
      Parameters:
      type - the primary type
      subtype - the subtype
      charset - the character set
      Throws:
      IllegalArgumentException - if any of the parameters contains illegal characters
    • MimeType

      public MimeType(MimeType other, Charset charset)
      Copy-constructor that copies the type, subtype, parameters of the given MimeType, and allows to set the specified character set.
      Parameters:
      other - the other media type
      charset - the character set
      Throws:
      IllegalArgumentException - if any of the parameters contains illegal characters
      Since:
      4.3
    • MimeType

      public MimeType(MimeType other, Map<String,String> parameters)
      Copy-constructor that copies the type and subtype of the given MimeType, and allows for different parameter.
      Parameters:
      other - the other media type
      parameters - the parameters, may be null
      Throws:
      IllegalArgumentException - if any of the parameters contains illegal characters
    • MimeType

      public MimeType(String type, String subtype, Map<String,String> parameters)
      Create a new MimeType for the given type, subtype, and parameters.
      Parameters:
      type - the primary type
      subtype - the subtype
      parameters - the parameters, may be null
      Throws:
      IllegalArgumentException - if any of the parameters contains illegal characters
  • Method Details

    • checkParameters

      protected void checkParameters(String attribute, String value)
    • unquote

      protected String unquote(String s)
    • isWildcardType

      public boolean isWildcardType()
      Indicates whether the type is the wildcard character &#42; or not.
      Returns:
      return true if this type is a wildcard
    • isWildcardSubtype

      public boolean isWildcardSubtype()
      Indicates whether the subtype is the wildcard character &#42; or the wildcard character followed by a suffix (e.g. &#42;+xml).
      Returns:
      whether the subtype is a wildcard
    • isConcrete

      public boolean isConcrete()
      Indicates whether this media type is concrete, i.e. whether neither the type nor the subtype is a wildcard character &#42;.
      Returns:
      whether this media type is concrete
    • getType

      public String getType()
      Return the primary type.
      Returns:
      return the type
    • getSubtype

      public String getSubtype()
      Return the subtype.
      Returns:
      return the subtype
    • getCharset

      public Charset getCharset()
      Return the character set, as indicated by a charset parameter, if any.
      Returns:
      the character set, or null if not available
      Since:
      4.3
    • getParameter

      public String getParameter(String name)
      Return a generic parameter value, given a parameter name.
      Parameters:
      name - the parameter name
      Returns:
      the parameter value, or null if not present
    • getParameters

      public Map<String,String> getParameters()
      Return all generic parameter values.
      Returns:
      a read-only map (possibly empty, never null)
    • includes

      public boolean includes(MimeType other)
      Indicate whether this 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.

      Parameters:
      other - the reference media type with which to compare
      Returns:
      true if this media type includes the given media type; false otherwise
    • isCompatibleWith

      public boolean isCompatibleWith(MimeType other)
      Indicate whether this 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(com.okta.commons.http.MimeType), except that it is symmetric.

      Parameters:
      other - the reference media type with which to compare
      Returns:
      true if this media type is compatible with the given media type; false otherwise
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • appendTo

      protected void appendTo(StringBuilder builder)
    • compareTo

      public int compareTo(MimeType other)
      Compares this MediaType to another alphabetically.
      Specified by:
      compareTo in interface Comparable<MimeType>
      Parameters:
      other - media type to compare to
      See Also:
    • valueOf

      public static MimeType valueOf(String value)
      Parse the given String value into a MimeType object, with this method name following the 'valueOf' naming convention (as supported by org.springframework.core.convert.ConversionService.
      Parameters:
      value - string to parse
      Returns:
      MimeType base on value
      See Also: