Class MediaTypes

java.lang.Object
org.glassfish.jersey.message.internal.MediaTypes

public final class MediaTypes extends Object
Common media types and functionality.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final Comparator<List<? extends javax.ws.rs.core.MediaType>>
    Comparator for lists of media types.
    static final Comparator<javax.ws.rs.core.MediaType>
    A comparator for media types, that implements the "partial order" defined in the resource matching algorithm section of the JAX-RS specification, except that this comparator is "inverted" so that it allows for natural sorting in Java collections, where "lower" values are put to the front of a collection.
    private static final Predicate<String>
    Predicate for constructing filtering parameter maps that ignore the "q" and "qs" parameters.
    static final javax.ws.rs.core.MediaType
    WADL Media type.
    static final AcceptableMediaType
    An acceptable media type corresponding to a wildcard type.
    An acceptable media type corresponding to a wildcard type.
    static final List<javax.ws.rs.core.MediaType>
    A singleton list containing the wildcard media type.
    private static final Map<String,javax.ws.rs.core.MediaType>
    Cache containing frequently requested media type values with a wildcard subtype.
    static final List<javax.ws.rs.core.MediaType>
    A singleton list containing the wildcard media type.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    Prevents initialization.
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
    convertToString(Iterable<javax.ws.rs.core.MediaType> mediaTypes)
    Convert media types into String.
    static List<javax.ws.rs.core.MediaType>
    createFrom(String[] mediaTypes)
    Create an unmodifiable list of media type from a string array of media types.
    static List<javax.ws.rs.core.MediaType>
    createFrom(javax.ws.rs.Consumes annotation)
    Create an unmodifiable list of media types from the values declared in the Consumes annotation.
    static List<javax.ws.rs.core.MediaType>
    createFrom(javax.ws.rs.Produces annotation)
    Create an unmodifiable list of media types from the values declared in the Produces annotation.
    Create a list of quality source media type from an array of media types.
    static List<javax.ws.rs.core.MediaType>
    createQualitySourceMediaTypes(javax.ws.rs.Produces mime)
    Create a list of quality source media type from the Produces annotation.
    static int
    getQuality(javax.ws.rs.core.MediaType mt)
    Reads quality factor from given media type.
    static javax.ws.rs.core.MediaType
    getTypeWildCart(javax.ws.rs.core.MediaType mediaType)
    Returns MediaType with wildcard in subtype.
    static boolean
    intersect(List<? extends javax.ws.rs.core.MediaType> ml1, List<? extends javax.ws.rs.core.MediaType> ml2)
    Determine if the two list of media types share a common type-equal sub-list.
    static boolean
    isWildcard(javax.ws.rs.core.MediaType mediaType)
    Check if the given media type is a wildcard type.
    static javax.ws.rs.core.MediaType
    mostSpecific(javax.ws.rs.core.MediaType m1, javax.ws.rs.core.MediaType m2)
    Get the most specific media type from a pair of media types.
    private static int
     
    static javax.ws.rs.core.MediaType
    stripQualityParams(javax.ws.rs.core.MediaType mediaType)
    Strips any quality parameters, i.e.
    static boolean
    typeEqual(javax.ws.rs.core.MediaType m1, javax.ws.rs.core.MediaType m2)
    Determine if the two media types are type-equal (their type and subtype are equal).

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • WADL_TYPE

      public static final javax.ws.rs.core.MediaType WADL_TYPE
      WADL Media type.
    • PARTIAL_ORDER_COMPARATOR

      public static final Comparator<javax.ws.rs.core.MediaType> PARTIAL_ORDER_COMPARATOR
      A comparator for media types, that implements the "partial order" defined in the resource matching algorithm section of the JAX-RS specification, except that this comparator is "inverted" so that it allows for natural sorting in Java collections, where "lower" values are put to the front of a collection. IOW, when used to sort a collection, the resulting collection can be iterated in a way that the more specific media types are preferred over the less specific ones:
         m/n < m/* < */*
      The actual media type values are ignored, i.e. the different media types are considered equal if they are comparably specific:
         compare(m/n, x/y) == 0
         compare(m/*, x/*) == 0
    • MEDIA_TYPE_LIST_COMPARATOR

      public static final Comparator<List<? extends javax.ws.rs.core.MediaType>> MEDIA_TYPE_LIST_COMPARATOR
      Comparator for lists of media types.

      The least specific content type of each list is obtained and then compared using PARTIAL_ORDER_COMPARATOR.

      Assumes each list is already ordered according to PARTIAL_ORDER_COMPARATOR and therefore the least specific media type is at the end of the list.

    • WILDCARD_TYPE_SINGLETON_LIST

      public static final List<javax.ws.rs.core.MediaType> WILDCARD_TYPE_SINGLETON_LIST
      A singleton list containing the wildcard media type.
    • WILDCARD_ACCEPTABLE_TYPE

      public static final AcceptableMediaType WILDCARD_ACCEPTABLE_TYPE
      An acceptable media type corresponding to a wildcard type.
    • WILDCARD_QS_TYPE

      public static final QualitySourceMediaType WILDCARD_QS_TYPE
      An acceptable media type corresponding to a wildcard type.
    • WILDCARD_QS_TYPE_SINGLETON_LIST

      public static final List<javax.ws.rs.core.MediaType> WILDCARD_QS_TYPE_SINGLETON_LIST
      A singleton list containing the wildcard media type.
    • WILDCARD_SUBTYPE_CACHE

      private static final Map<String,javax.ws.rs.core.MediaType> WILDCARD_SUBTYPE_CACHE
      Cache containing frequently requested media type values with a wildcard subtype.
    • QUALITY_PARAM_FILTERING_PREDICATE

      private static final Predicate<String> QUALITY_PARAM_FILTERING_PREDICATE
      Predicate for constructing filtering parameter maps that ignore the "q" and "qs" parameters.
  • Constructor Details

    • MediaTypes

      private MediaTypes()
      Prevents initialization.
  • Method Details

    • typeEqual

      public static boolean typeEqual(javax.ws.rs.core.MediaType m1, javax.ws.rs.core.MediaType m2)
      Determine if the two media types are type-equal (their type and subtype are equal). For example:
        m/n == m/n
        m/n;p1 == m/n;p2
      
        m/n != m/y
        m/n != x/n
        m/n != x/y
      Parameters:
      m1 - first media type.
      m2 - second media type.
      Returns:
      true if the two media types are of the same type and subtype, false otherwise.
    • intersect

      public static boolean intersect(List<? extends javax.ws.rs.core.MediaType> ml1, List<? extends javax.ws.rs.core.MediaType> ml2)
      Determine if the two list of media types share a common type-equal sub-list.
      Parameters:
      ml1 - first media type list.
      ml2 - second media type list.
      Returns:
      true if the two media type lists intersect by sharing a common type-equal sub-list, false otherwise.
    • mostSpecific

      public static javax.ws.rs.core.MediaType mostSpecific(javax.ws.rs.core.MediaType m1, javax.ws.rs.core.MediaType m2)
      Get the most specific media type from a pair of media types. The most specific media type is the media type from the pair that has least wild cards present, or has more parameters specified.
      Parameters:
      m1 - the first media type.
      m2 - the second media type.
      Returns:
      the most specific media type. If the media types are equally specific then the first media type is returned.
    • createFrom

      public static List<javax.ws.rs.core.MediaType> createFrom(javax.ws.rs.Consumes annotation)
      Create an unmodifiable list of media types from the values declared in the Consumes annotation.
      Parameters:
      annotation - the Consumes annotation.
      Returns:
      the list of MediaType, ordered according to PARTIAL_ORDER_COMPARATOR.
    • createFrom

      public static List<javax.ws.rs.core.MediaType> createFrom(javax.ws.rs.Produces annotation)
      Create an unmodifiable list of media types from the values declared in the Produces annotation.
      Parameters:
      annotation - the Produces annotation.
      Returns:
      the list of MediaType, ordered according to PARTIAL_ORDER_COMPARATOR.
    • createFrom

      public static List<javax.ws.rs.core.MediaType> createFrom(String[] mediaTypes)
      Create an unmodifiable list of media type from a string array of media types.
      Parameters:
      mediaTypes - the string array of media types.
      Returns:
      the list of MediaType, ordered according to PARTIAL_ORDER_COMPARATOR.
    • createQualitySourceMediaTypes

      public static List<javax.ws.rs.core.MediaType> createQualitySourceMediaTypes(javax.ws.rs.Produces mime)
      Create a list of quality source media type from the Produces annotation.

      Parameters:
      mime - the Produces annotation.
      Returns:
      the list of QualitySourceMediaType, ordered according to QualitySourceMediaType.COMPARATOR.
    • createQualitySourceMediaTypes

      public static List<QualitySourceMediaType> createQualitySourceMediaTypes(String[] mediaTypes)
      Create a list of quality source media type from an array of media types.

      Parameters:
      mediaTypes - the array of media types.
      Returns:
      the list of QualitySourceMediaType, ordered according to the quality source as the primary key and PARTIAL_ORDER_COMPARATOR as the secondary key.
    • getQuality

      public static int getQuality(javax.ws.rs.core.MediaType mt)
      Reads quality factor from given media type.
      Parameters:
      mt - media type to read quality parameter from
      Returns:
      quality factor of input media type
    • readQualityFactor

      private static int readQualityFactor(String qParam) throws IllegalArgumentException
      Throws:
      IllegalArgumentException
    • stripQualityParams

      public static javax.ws.rs.core.MediaType stripQualityParams(javax.ws.rs.core.MediaType mediaType)
      Strips any quality parameters, i.e. q and qs from given media type.
      Parameters:
      mediaType - type to strip quality parameters from
      Returns:
      media type instance corresponding to the given one with quality parameters stripped off or the original instance if no such parameters are present
    • getTypeWildCart

      public static javax.ws.rs.core.MediaType getTypeWildCart(javax.ws.rs.core.MediaType mediaType)
      Returns MediaType with wildcard in subtype.
      Parameters:
      mediaType - original MediaType.
      Returns:
      MediaType with wildcard in subtype.
    • convertToString

      public static String convertToString(Iterable<javax.ws.rs.core.MediaType> mediaTypes)
      Convert media types into String. The result string contains media types in the same order, separated by comma ',' and enclosed into quotes. For example for input media types MediaType.TEXT_PLAIN_TYPE, MediaType.TEXT_PLAIN_TYPE and MediaType.APPLICATION_JSON_TYPE the result will be "text/plain", "application/json", "text/html".
      Parameters:
      mediaTypes - iterable with media types.
      Returns:
      Media types converted into String.
    • isWildcard

      public static boolean isWildcard(javax.ws.rs.core.MediaType mediaType)
      Check if the given media type is a wildcard type. A media type is considered to be a wildcard if either the media type's type or subtype is a wildcard type.
      Parameters:
      mediaType - media type.
      Returns:
      true if the media type is a wildcard type, false otherwise.