Class MediaType

java.lang.Object
io.micronaut.http.MediaType
All Implemented Interfaces:
CharSequence

public class MediaType extends Object implements CharSequence
Represents a media type. See https://www.iana.org/assignments/media-types/media-types.xhtml and https://tools.ietf.org/html/rfc2046
Since:
1.0
Author:
Graeme Rocher
  • Field Details

    • EXTENSION_JSON

      public static final String EXTENSION_JSON
      Default file extension used for JSON.
      See Also:
    • EXTENSION_XML

      public static final String EXTENSION_XML
      Default file extension used for XML.
      See Also:
    • EXTENSION_PDF

      public static final String EXTENSION_PDF
      Default file extension used for PDF.
      See Also:
    • EXTENSION_XLSX

      public static final String EXTENSION_XLSX
      File extension used for Microsoft Excel Open XML Spreadsheet (XLSX).
      See Also:
    • EXTENSION_XLS

      public static final String EXTENSION_XLS
      File extension for Microsoft Excel's workbook files in use between 97-2003.
      See Also:
    • EMPTY_ARRAY

      public static final MediaType[] EMPTY_ARRAY
      Default empty media type array.
    • ALL

      public static final String ALL
      A wildcard media type representing all types.
      See Also:
    • ALL_TYPE

      public static final MediaType ALL_TYPE
      A wildcard media type representing all types.
    • APPLICATION_FORM_URLENCODED

      public static final String APPLICATION_FORM_URLENCODED
      Form encoded data: application/x-www-form-urlencoded.
      See Also:
    • APPLICATION_FORM_URLENCODED_TYPE

      public static final MediaType APPLICATION_FORM_URLENCODED_TYPE
      Form encoded data: application/x-www-form-urlencoded.
    • FORM

      public static final MediaType FORM
    • MULTIPART_FORM_DATA

      public static final String MULTIPART_FORM_DATA
      Multi part form data: multipart/form-data.
      See Also:
    • MULTIPART_FORM_DATA_TYPE

      public static final MediaType MULTIPART_FORM_DATA_TYPE
      Multi part form data: multipart/form-data.
    • TEXT_HTML

      public static final String TEXT_HTML
      HTML: text/html.
      See Also:
    • TEXT_HTML_TYPE

      public static final MediaType TEXT_HTML_TYPE
      HTML: text/html.
    • TEXT_CSV

      public static final String TEXT_CSV
      CSV: text/csv.
      See Also:
    • TEXT_CSV_TYPE

      public static final MediaType TEXT_CSV_TYPE
      CSV: text/csv.
    • APPLICATION_XHTML

      public static final String APPLICATION_XHTML
      XHTML: application/xhtml+xml.
      See Also:
    • APPLICATION_XHTML_TYPE

      public static final MediaType APPLICATION_XHTML_TYPE
      XHTML: application/xhtml+xml.
    • APPLICATION_XML

      public static final String APPLICATION_XML
      XML: application/xml.
      See Also:
    • APPLICATION_XML_TYPE

      public static final MediaType APPLICATION_XML_TYPE
      XML: application/xml.
    • APPLICATION_JSON

      public static final String APPLICATION_JSON
      JSON: application/json.
      See Also:
    • APPLICATION_JSON_TYPE

      public static final MediaType APPLICATION_JSON_TYPE
      JSON: application/json.
    • APPLICATION_YAML

      public static final String APPLICATION_YAML
      YAML: application/x-yaml.
      See Also:
    • APPLICATION_YAML_TYPE

      public static final MediaType APPLICATION_YAML_TYPE
      YAML: application/x-yaml.
    • MICROSOFT_EXCEL_OPEN_XML

      public static final String MICROSOFT_EXCEL_OPEN_XML
      XML: Microsoft Excel Open XML Spreadsheet (XLSX).
      See Also:
    • MICROSOFT_EXCEL_OPEN_XML_TYPE

      public static final MediaType MICROSOFT_EXCEL_OPEN_XML_TYPE
      XML: Microsoft Excel Open XML Spreadsheet (XLSX).
    • MICROSOFT_EXCEL

      public static final String MICROSOFT_EXCEL
      Microsoft Excel's workbook files in use between 97-2003.
      See Also:
    • MICROSOFT_EXCEL_TYPE

      public static final MediaType MICROSOFT_EXCEL_TYPE
      Microsoft Excel's workbook files in use between 97-2003.
    • TEXT_XML

      public static final String TEXT_XML
      XML: text/xml.
      See Also:
    • TEXT_XML_TYPE

      public static final MediaType TEXT_XML_TYPE
      XML: text/xml.
    • TEXT_JSON

      public static final String TEXT_JSON
      JSON: text/json.
      See Also:
    • TEXT_JSON_TYPE

      public static final MediaType TEXT_JSON_TYPE
      JSON: text/json.
    • TEXT_PLAIN

      public static final String TEXT_PLAIN
      Plain Text: text/plain.
      See Also:
    • TEXT_PLAIN_TYPE

      public static final MediaType TEXT_PLAIN_TYPE
      Plain Text: text/plain.
    • APPLICATION_HAL_JSON

      public static final String APPLICATION_HAL_JSON
      HAL JSON: application/hal+json.
      See Also:
    • APPLICATION_HAL_JSON_TYPE

      public static final MediaType APPLICATION_HAL_JSON_TYPE
      HAL JSON: application/hal+json.
    • APPLICATION_HAL_XML

      public static final String APPLICATION_HAL_XML
      HAL XML: application/hal+xml.
      See Also:
    • APPLICATION_HAL_XML_TYPE

      public static final MediaType APPLICATION_HAL_XML_TYPE
      HAL XML: application/hal+xml.
    • APPLICATION_ATOM_XML

      public static final String APPLICATION_ATOM_XML
      Atom: application/atom+xml.
      See Also:
    • APPLICATION_ATOM_XML_TYPE

      public static final MediaType APPLICATION_ATOM_XML_TYPE
      Atom: application/atom+xml.
    • APPLICATION_VND_ERROR

      public static final String APPLICATION_VND_ERROR
      VND Error: application/vnd.error+json.
      See Also:
    • APPLICATION_VND_ERROR_TYPE

      public static final MediaType APPLICATION_VND_ERROR_TYPE
      VND Error: application/vnd.error+json.
    • TEXT_EVENT_STREAM

      public static final String TEXT_EVENT_STREAM
      Server Sent Event: text/event-stream.
      See Also:
    • TEXT_EVENT_STREAM_TYPE

      public static final MediaType TEXT_EVENT_STREAM_TYPE
      Server Sent Event: text/event-stream.
    • APPLICATION_JSON_STREAM

      public static final String APPLICATION_JSON_STREAM
      JSON Stream: application/x-json-stream.
      See Also:
    • APPLICATION_JSON_STREAM_TYPE

      public static final MediaType APPLICATION_JSON_STREAM_TYPE
      JSON Stream: application/x-json-stream.
    • APPLICATION_OCTET_STREAM

      public static final String APPLICATION_OCTET_STREAM
      BINARY: application/octet-stream.
      See Also:
    • APPLICATION_OCTET_STREAM_TYPE

      public static final MediaType APPLICATION_OCTET_STREAM_TYPE
      BINARY: application/octet-stream.
    • APPLICATION_GRAPHQL

      public static final String APPLICATION_GRAPHQL
      GraphQL: application/graphql.
      See Also:
    • APPLICATION_GRAPHQL_TYPE

      public static final MediaType APPLICATION_GRAPHQL_TYPE
      GraphQL: application/graphql.
    • APPLICATION_PDF

      public static final String APPLICATION_PDF
      PDF: application/pdf.
      See Also:
    • APPLICATION_PDF_TYPE

      public static final MediaType APPLICATION_PDF_TYPE
      PDF: application/pdf.
    • IMAGE_PNG

      public static final String IMAGE_PNG
      Png Image: image/png.
      See Also:
    • IMAGE_PNG_TYPE

      public static final MediaType IMAGE_PNG_TYPE
      Png Image: image/png.
    • IMAGE_JPEG

      public static final String IMAGE_JPEG
      Jpeg Image: image/jpeg.
      See Also:
    • IMAGE_JPEG_TYPE

      public static final MediaType IMAGE_JPEG_TYPE
      Jpeg Image: image/jpeg.
    • IMAGE_GIF

      public static final String IMAGE_GIF
      Gif Image: image/gif.
      See Also:
    • IMAGE_GIF_TYPE

      public static final MediaType IMAGE_GIF_TYPE
      Gif Image: image/gif.
    • IMAGE_WEBP

      public static final String IMAGE_WEBP
      Webp Image: image/webp.
      See Also:
    • IMAGE_WEBP_TYPE

      public static final MediaType IMAGE_WEBP_TYPE
      Webp Image: image/webp.
    • CHARSET_PARAMETER

      public static final String CHARSET_PARAMETER
      Parameter "charset".
      See Also:
    • Q_PARAMETER

      public static final String Q_PARAMETER
      Parameter "q".
      See Also:
    • V_PARAMETER

      public static final String V_PARAMETER
      Parameter "v".
      See Also:
    • name

      protected final String name
    • subtype

      protected final String subtype
    • type

      protected final String type
    • extension

      protected final String extension
    • parameters

      protected final Map<CharSequence,String> parameters
  • Constructor Details

    • MediaType

      public MediaType(String name)
      Constructs a new media type for the given string.
      Parameters:
      name - The name of the media type. For example application/json
    • MediaType

      public MediaType(String name, Map<String,String> params)
      Constructs a new media type for the given string and parameters.
      Parameters:
      name - The name of the media type. For example application/json
      params - The parameters
    • MediaType

      public MediaType(String name, String extension)
      Constructs a new media type for the given string and extension.
      Parameters:
      name - The name of the media type. For example application/json
      extension - The extension of the file using this media type if it differs from the subtype
    • MediaType

      public MediaType(String name, String extension, Map<String,String> params)
      Constructs a new media type for the given string and extension.
      Parameters:
      name - The name of the media type. For example application/json
      extension - The extension of the file using this media type if it differs from the subtype
      params - The parameters
  • Method Details

    • of

      public static MediaType of(String mediaType)
      Create a new or get a MediaType from the given text.
      Parameters:
      mediaType - The text
      Returns:
      The MediaType
    • matches

      public boolean matches(@NonNull MediaType expectedContentType)
      Determine if this requested content type can be satisfied by a given content type. e.g. text/* will be satisfied by test/html.
      Parameters:
      expectedContentType - Content type to match against
      Returns:
      if successful match
    • getName

      public String getName()
      Returns:
      The name of the mime type without any parameters
    • getType

      public String getType()
      Returns:
      The type of the media type. For example for application/hal+json this would return "application"
    • getSubtype

      public String getSubtype()
      Returns:
      The subtype. For example for application/hal+json this would return "hal+json"
    • getExtension

      public String getExtension()
      Returns:
      The extension. For example for application/hal+json this would return "json"
    • getParameters

      public OptionalValues<String> getParameters()
      Returns:
      The parameters to the media type
    • getQuality

      public String getQuality()
      Returns:
      The quality of the Mime type
    • getQualityAsNumber

      public BigDecimal getQualityAsNumber()
      Returns:
      The quality in BigDecimal form
    • getVersion

      public String getVersion()
      Returns:
      The version of the Mime type
    • getCharset

      public Optional<Charset> getCharset()
      Returns:
      The charset of the media type if specified
    • length

      public int length()
      Specified by:
      length in interface CharSequence
    • charAt

      public char charAt(int index)
      Specified by:
      charAt in interface CharSequence
    • subSequence

      public CharSequence subSequence(int start, int end)
      Specified by:
      subSequence in interface CharSequence
    • isTextBased

      public boolean isTextBased()
      Returns:
      Whether the media type is text based
    • isTextBased

      public static boolean isTextBased(String contentType)
      Parameters:
      contentType - The content type
      Returns:
      Whether the content type is text based
    • toString

      public String toString()
      Specified by:
      toString in interface CharSequence
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)

      Only the name is matched. Parameters are not included.

      Overrides:
      equals in class Object
    • hashCode

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

      public static List<MediaType> orderedOf(CharSequence... values)
      Returns the ordered media types for the given values.
      Parameters:
      values - The values
      Returns:
      The media types.
      Since:
      1.3.3
    • orderedOf

      public static List<MediaType> orderedOf(List<? extends CharSequence> values)
      Returns the ordered media types for the given values.
      Parameters:
      values - The values
      Returns:
      The media types.
      Since:
      1.3.3
    • of

      public static MediaType of(CharSequence mediaType)
      Create a new MediaType from the given text.
      Parameters:
      mediaType - The text
      Returns:
      The MediaType
    • of

      public static MediaType[] of(CharSequence... mediaType)
      Create a new MediaType from the given text.
      Parameters:
      mediaType - The text
      Returns:
      The MediaType
    • fromType

      public static Optional<MediaType> fromType(Class<?> type)
      Resolve the MediaType produced by the given type based on the Produces annotation.
      Parameters:
      type - The type
      Returns:
      An Optional MediaType
    • forExtension

      public static Optional<MediaType> forExtension(String extension)
      Resolve the MediaType for the given file extension.
      Parameters:
      extension - The file extension
      Returns:
      The MediaType
    • forFilename

      public static MediaType forFilename(String filename)
      Resolve the MediaType for the given file name. Defaults to text/plain.
      Parameters:
      filename - The file name
      Returns:
      The MediaType