org.apache.sling.servlets.post.impl.helper
Class MediaRangeList

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractSet<E>
          extended by java.util.TreeSet<MediaRangeList.MediaRange>
              extended by org.apache.sling.servlets.post.impl.helper.MediaRangeList
All Implemented Interfaces:
Serializable, Cloneable, Iterable<MediaRangeList.MediaRange>, Collection<MediaRangeList.MediaRange>, NavigableSet<MediaRangeList.MediaRange>, Set<MediaRangeList.MediaRange>, SortedSet<MediaRangeList.MediaRange>

public class MediaRangeList
extends TreeSet<MediaRangeList.MediaRange>

Facilitates parsing of the Accept HTTP request header. See RFC 2616 section 14.1

See Also:
Serialized Form

Nested Class Summary
 class MediaRangeList.MediaRange
          A code MediaRange represents an entry in a MediaRangeList.
 
Field Summary
static String HEADER_ACCEPT
           
static String PARAM_ACCEPT
           
static String WILDCARD
           
 
Constructor Summary
MediaRangeList(javax.servlet.http.HttpServletRequest request)
          Constructs a MediaRangeList using information from the supplied HttpServletRequest.
MediaRangeList(String listStr)
          Constructs a MediaRangeList using a list of media ranges specified in a java.lang.String.
 
Method Summary
 boolean contains(String mediaType)
          Determines if this MediaRangeList contains a given media type.
 MediaRangeList.MediaRange prefer(Set<MediaRangeList.MediaRange> mediaRanges)
          Given a list of media types, returns the one is preferred by this MediaRangeList.
 String prefer(String... mediaRanges)
          Determines which of the mediaRanges specifiactions is prefered by this MediaRangeList.
 
Methods inherited from class java.util.TreeSet
add, addAll, ceiling, clear, clone, comparator, contains, descendingIterator, descendingSet, first, floor, headSet, headSet, higher, isEmpty, iterator, last, lower, pollFirst, pollLast, remove, size, subSet, subSet, tailSet, tailSet
 
Methods inherited from class java.util.AbstractSet
equals, hashCode, removeAll
 
Methods inherited from class java.util.AbstractCollection
containsAll, retainAll, toArray, toArray, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Set
containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray
 

Field Detail

HEADER_ACCEPT

public static final String HEADER_ACCEPT
See Also:
Constant Field Values

PARAM_ACCEPT

public static final String PARAM_ACCEPT
See Also:
Constant Field Values

WILDCARD

public static final String WILDCARD
See Also:
Constant Field Values
Constructor Detail

MediaRangeList

public MediaRangeList(javax.servlet.http.HttpServletRequest request)
Constructs a MediaRangeList using information from the supplied HttpServletRequest. if the request contains a PARAM_ACCEPT query parameter, the query parameter value overrides any HEADER_ACCEPT header value. If the request contains no PARAM_ACCEPT parameter, or the parameter value is empty, the value of the HEADER_ACCEPT is used. If both values are missing, it is assumed that the client accepts all media types, as per the RFC. See also MediaRangeList(java.lang.String)

Parameters:
request - The HttpServletRequest to extract a MediaRangeList from

MediaRangeList

public MediaRangeList(String listStr)
Constructs a MediaRangeList using a list of media ranges specified in a java.lang.String. The string is a comma-separated list of media ranges, as specified by the RFC.
Examples:

Parameters:
listStr - The list of media range specifications
Method Detail

contains

public boolean contains(String mediaType)
Determines if this MediaRangeList contains a given media type.

Parameters:
mediaType - A string on the form type/subtype. Neither type or subtype should be wildcard (*).
Returns:
true if this MediaRangeList contains a media type that matches mediaType, false otherwise
Throws:
IllegalArgumentException - if mediaType is not on an accepted form
NullPointerException - if mediaType is null

prefer

public MediaRangeList.MediaRange prefer(Set<MediaRangeList.MediaRange> mediaRanges)
Given a list of media types, returns the one is preferred by this MediaRangeList.

Parameters:
mediaRanges - An array of possible MediaRangeList.MediaRanges
Returns:
One of the mediaRanges that this MediaRangeList prefers; or null if this MediaRangeList does not contain any of the mediaRanges
Throws:
NullPointerException - if mediaRanges is null or contains a null value

prefer

public String prefer(String... mediaRanges)
Determines which of the mediaRanges specifiactions is prefered by this MediaRangeList.

Parameters:
mediaRanges - String representations of MediaRanges. The strings must be on the form required by MediaRange#MediaRange(String)
Returns:
the toString representation of the prefered MediaRange, or null if this MediaRangeList does not contain any of the mediaRanges
See Also:
prefer(java.util.Set)


Copyright © 2007-2013 The Apache Software Foundation. All Rights Reserved.