Class MediaTypeSet

  • All Implemented Interfaces:
    Iterable<MediaType>, Collection<MediaType>, Set<MediaType>

    public final class MediaTypeSet
    extends AbstractSet<MediaType>
    An immutable Set of MediaTypes which provides useful methods for content negotiation.

    This Set provides match(MediaType) and matchHeaders(CharSequence...) so that a user can find the preferred MediaType that matches the specified media ranges. For example:

    
     MediaTypeSet set = new MediaTypeSet(MediaType.HTML_UTF_8, MediaType.PLAIN_TEXT_UTF_8);
    
     Optional<MediaType> negotiated1 = set.matchHeaders("text/html; q=0.5, text/plain");
     assert negotiated1.isPresent();
     assert negotiated1.get().equals(MediaType.PLAIN_TEXT_UTF_8);
    
     Optional<MediaType> negotiated2 = set.matchHeaders("audio/*, text/*");
     assert negotiated2.isPresent();
     assert negotiated2.get().equals(MediaType.HTML_UTF_8);
    
     Optional<MediaType> negotiated3 = set.matchHeaders("video/webm");
     assert !negotiated3.isPresent();