Class MediaTypes

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

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

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

    • 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(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<MediaType> createFrom(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<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<MediaType> createQualitySourceMediaTypes(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(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.
    • convertToString

      public static String convertToString(Iterable<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(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.