Package uk.ac.starlink.util
Class ContentType
- java.lang.Object
-
- uk.ac.starlink.util.ContentType
-
public class ContentType extends java.lang.Object
Represents a Content Type (MIME type) string. Most of the work is done by the {link #parseContentType} factory method.This takes care of things like optional whitespace and case folding, so for instance if
ctypeTxt
has the valueAPPLICATION / X-VOTABLE+XML ; content=datalink; CHARSET="iso\-8859\-1"
thenContentType ctype = CointentType.parse(ctypeTxt); assert ctype.matches("application", "x-votable+xml"); assert ctype.getParameter("charset").equals("iso-8859-1");
- Since:
- 17 Nov 2017
- Author:
- Mark Taylor
- See Also:
- RFC 2045
-
-
Constructor Summary
Constructors Constructor Description ContentType(java.lang.String type, java.lang.String subtype)
Constructs a ContentType from type and subtype strings.ContentType(java.lang.String type, java.lang.String subtype, java.util.Map<java.lang.String,java.lang.String> params)
Constructs a ContentType from its constituent parts.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object o)
java.lang.String
getParameter(java.lang.String paramName)
Returns the value of a parameter of this content type.java.util.Map<java.lang.String,java.lang.String>
getParameters()
Returns the parameter name/value pairs of this content type.java.lang.String
getSubtype()
Returns the Subtype part of this content type.java.lang.String
getType()
Returns the Type part of this content type.int
hashCode()
static void
main(java.lang.String[] args)
Parses a single content-type string supplied on the command line, and prints a representation of the parsed form on standard output.boolean
matches(java.lang.String type, java.lang.String subtype)
Indicates whether the type and subtype match a given pair.static ContentType
parseContentType(java.lang.String txt)
Parses a Content-Type (MIME type) string in accordance with the syntax rules in RFC2045.java.lang.String
toString()
-
-
-
Constructor Detail
-
ContentType
public ContentType(java.lang.String type, java.lang.String subtype)
Constructs a ContentType from type and subtype strings. Case is normalised (to lower case).- Parameters:
type
- type partsubtype
- subtype part
-
ContentType
public ContentType(java.lang.String type, java.lang.String subtype, java.util.Map<java.lang.String,java.lang.String> params)
Constructs a ContentType from its constituent parts. Case is normalised (to lower case) for the case-insensitive parts, that is type, subtype and parameter names.- Parameters:
type
- type partsubtype
- subtype partparams
- map of parameters
-
-
Method Detail
-
getType
public java.lang.String getType()
Returns the Type part of this content type.- Returns:
- type
-
getSubtype
public java.lang.String getSubtype()
Returns the Subtype part of this content type.- Returns:
- subtype
-
getParameters
public java.util.Map<java.lang.String,java.lang.String> getParameters()
Returns the parameter name/value pairs of this content type. The parameter names (keys of the returned map) will always be in lower case.- Returns:
- name/value pairs as an ordered map
-
matches
public boolean matches(java.lang.String type, java.lang.String subtype)
Indicates whether the type and subtype match a given pair.- Parameters:
type
- required type part (case-insensitive)subtype
- required subtype part (case-insensitive)- Returns:
- true iff type and subtype match those of this content-type
-
getParameter
public java.lang.String getParameter(java.lang.String paramName)
Returns the value of a parameter of this content type.- Parameters:
paramName
- parameter name (case-insensitive)- Returns:
- parameter value, or null if no such parameter
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
parseContentType
public static ContentType parseContentType(java.lang.String txt)
Parses a Content-Type (MIME type) string in accordance with the syntax rules in RFC2045. Such strings look something like "type/subtype[;p1=v1;p2=v2...]
". It may not be completely bulletproof, but should do a fairly good job of the parse. However, it makes no attempt to restrict the type or subtype to IANA-approved values, and it may parse some strings which are not strictly legal.Null is returned if the string cannot be parsed.
- Parameters:
txt
- content-type string of the approximate formtype/subtype(;param=value)*
- Returns:
- ContentType object if
txt
can be parsed, otherwise null - See Also:
- RFC 2045, sec 5.1, RFC 822, sec 3.3
-
main
public static void main(java.lang.String[] args)
Parses a single content-type string supplied on the command line, and prints a representation of the parsed form on standard output.
-
-