Package org.linkeddatafragments.util
Class MIMEParse
- java.lang.Object
-
- org.linkeddatafragments.util.MIMEParse
-
public final class MIMEParse extends Object
MIME-Type Parser This class provides basic functions for handling mime-types. It can handle matching mime-types against a list of media-ranges. See section 14.1 of the HTTP specification [RFC 2616] for a complete explanation. http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1 A port to Java of Joe Gregorio's MIME-Type Parser: http://code.google.com/p/mimeparse/ Ported by Tom Zellman. Extended by Miel Vander Sande
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classMIMEParse.FitnessAndQualityStructure for holding a fitness/quality comboprotected static classMIMEParse.ParseResultsParse results container
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static StringbestMatch(String header)static StringbestMatch(List<String> supported, String header)Takes a list of supported mime-types and finds the best match for all the media-ranges listed in header.protected static MIMEParse.FitnessAndQualityfitnessAndQualityParsed(String mimeType, Collection<MIMEParse.ParseResults> parsedRanges)Find the best match for a given mimeType against a list of media_ranges that have already been parsed by MimeParse.parseMediaRange().protected static MIMEParse.ParseResultsparseMediaRange(String range)Carves up a media range and returns a ParseResults.protected static MIMEParse.ParseResultsparseMimeType(String mimeType)Carves up a mime-type and returns a ParseResults object For example, the media range 'application/xhtml;q=0.5' would get parsed into: ('application', 'xhtml', {'q', '0.5'})static floatquality(String mimeType, String ranges)Returns the quality 'q' of a mime-type when compared against the mediaRanges in ranges.protected static floatqualityParsed(String mimeType, Collection<MIMEParse.ParseResults> parsedRanges)Find the best match for a given mime-type against a list of ranges that have already been parsed by parseMediaRange().static voidregister(String mimeType)Register mimeType in collection
-
-
-
Method Detail
-
register
public static void register(String mimeType)
Register mimeType in collection- Parameters:
mimeType-
-
parseMimeType
protected static MIMEParse.ParseResults parseMimeType(String mimeType)
Carves up a mime-type and returns a ParseResults object For example, the media range 'application/xhtml;q=0.5' would get parsed into: ('application', 'xhtml', {'q', '0.5'})- Parameters:
mimeType-- Returns:
-
parseMediaRange
protected static MIMEParse.ParseResults parseMediaRange(String range)
Carves up a media range and returns a ParseResults. For example, the media range 'application/*;q=0.5' would get parsed into: ('application', '*', {'q', '0.5'}) In addition this function also guarantees that there is a value for 'q' in the params dictionary, filling it in with a proper default if necessary.- Parameters:
range-- Returns:
-
fitnessAndQualityParsed
protected static MIMEParse.FitnessAndQuality fitnessAndQualityParsed(String mimeType, Collection<MIMEParse.ParseResults> parsedRanges)
Find the best match for a given mimeType against a list of media_ranges that have already been parsed by MimeParse.parseMediaRange(). Returns a tuple of the fitness value and the value of the 'q' quality parameter of the best match, or (-1, 0) if no match was found. Just as for quality_parsed(), 'parsed_ranges' must be a list of parsed media ranges.- Parameters:
mimeType-parsedRanges-- Returns:
-
qualityParsed
protected static float qualityParsed(String mimeType, Collection<MIMEParse.ParseResults> parsedRanges)
Find the best match for a given mime-type against a list of ranges that have already been parsed by parseMediaRange(). Returns the 'q' quality parameter of the best match, 0 if no match was found. This function bahaves the same as quality() except that 'parsed_ranges' must be a list of parsed media ranges.- Parameters:
mimeType-parsedRanges-- Returns:
-
quality
public static float quality(String mimeType, String ranges)
Returns the quality 'q' of a mime-type when compared against the mediaRanges in ranges. For example:- Parameters:
mimeType-ranges-- Returns:
-
bestMatch
public static String bestMatch(List<String> supported, String header) throws NoRegisteredMimeTypesException
Takes a list of supported mime-types and finds the best match for all the media-ranges listed in header. The value of header must be a string that conforms to the format of the HTTP Accept: header. The value of 'supported' is a list of mime-types. MimeParse.bestMatch(Arrays.asList(new String[]{"application/xbel+xml", "text/xml"}), "text/*;q=0.5,*; q=0.1") 'text/xml'- Parameters:
supported-header-- Returns:
- Throws:
NoRegisteredMimeTypesException
-
bestMatch
public static String bestMatch(String header) throws NoRegisteredMimeTypesException
- Parameters:
header-- Returns:
- Throws:
NoRegisteredMimeTypesException
-
-