Class MediaTypes


  • public final class MediaTypes
    extends Object
    Common media types and functionality.
    Author:
    Paul Sandoz, Marek Potociar
    • Field Detail

      • WADL_TYPE

        public static final MediaType WADL_TYPE
        WADL Media type.
      • PARTIAL_ORDER_COMPARATOR

        public static final Comparator<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 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<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<MediaType> WILDCARD_QS_TYPE_SINGLETON_LIST
        A singleton list containing the wildcard media type.
    • Method Detail

      • typeEqual

        public static boolean typeEqual​(MediaType m1,
                                        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 MediaType> ml1,
                                        List<? extends 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 MediaType mostSpecific​(MediaType m1,
                                             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<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<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​(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
      • stripQualityParams

        public static MediaType stripQualityParams​(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 MediaType getTypeWildCart​(MediaType mediaType)
        Returns MediaType with wildcard in subtype.
        Parameters:
        mediaType - original MediaType.
        Returns:
        MediaType with wildcard in subtype.
      • isWildcard

        public static boolean isWildcard​(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.