Package org.simpleframework.http.parse
Class ContentParser
java.lang.Object
org.simpleframework.util.parse.Parser
org.simpleframework.http.parse.ContentParser
- All Implemented Interfaces:
ContentType
This provides access to the MIME type parts, that is the primary
type, the secondary type and an optional character set parameter.
The
charset
parameter is one of many parameters that
can be associated with a MIME type. This however this exposes this
parameter with a typed method.
The getCharset
will return the character encoding the
content type is encoded within. This allows the user of the content
to decode it correctly. Other parameters can be acquired from this
by simply providing the name of the parameter.
- Author:
- Niall Gallagher
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionThe default constructor will create aContentParser
that contains no charset, type or subtype.ContentParser
(String header) This is primarily a convenience constructor. -
Method Summary
Modifier and TypeMethodDescriptionThis is used to retrieve thecharset
of this MIME type.getParameter
(String name) This is used to retrieve an arbitrary parameter from the MIME type header.This is used to retrieve the primary type of this MIME type.This is used to retrieve the secondary type of this MIME type.protected void
init()
This will initialize the parser when it is ready to parse a newString
.protected void
parse()
Reads and parses the MIME type from the givenString
object.void
setCharset
(String enc) This will set thecharset
to whatever value the string contains.void
setParameter
(String name, String value) This will add a named parameter to the content type header.void
setPrimary
(String primary) This sets the primary type to whatever value is in the string provided is.void
setSecondary
(String type) This sets the secondary type to whatever value is in the string provided is.toString()
This will return the value of the MIME type as a string.
-
Constructor Details
-
ContentParser
public ContentParser()The default constructor will create aContentParser
that contains no charset, type or subtype. This can be used to extract the type, subtype and the optionalcharset
parameter by using the parser'sparse(String)
method. -
ContentParser
This is primarily a convenience constructor. This will parse theString
given to extract the MIME type. This could be achived by calling the default no-arg constructor and then using the instance to invoke theparse
method on thatString
.- Parameters:
header
-String
containing a MIME type value
-
-
Method Details
-
setPrimary
This sets the primary type to whatever value is in the string provided is. If the string is null then this will contain a null string for the primary type of the parameter, which is likely invalid in most cases.- Specified by:
setPrimary
in interfaceContentType
- Parameters:
primary
- the type to set for the primary type of this
-
getPrimary
This is used to retrieve the primary type of this MIME type. The primary type part within the MIME type defines the generic type. For exampletext/plain; charset=UTF-8
. This will return the text value. If there is no primary type then this will returnnull
otherwise the string value.- Specified by:
getPrimary
in interfaceContentType
- Returns:
- the primary type part of this MIME type
-
setSecondary
This sets the secondary type to whatever value is in the string provided is. If the string is null then this will contain a null string for the secondary type of the parameter, which is likely invalid in most cases.- Specified by:
setSecondary
in interfaceContentType
- Parameters:
type
- the type to set for the primary type of this
-
getSecondary
This is used to retrieve the secondary type of this MIME type. The secondary type part within the MIME type defines the generic type. For exampletext/html; charset=UTF-8
. This will return the HTML value. If there is no secondary type then this will returnnull
otherwise the string value.- Specified by:
getSecondary
in interfaceContentType
- Returns:
- the primary type part of this MIME type
-
setCharset
This will set thecharset
to whatever value the string contains. If the string is null then this will not set the parameter to any value and thetoString
method will not contain any details of the parameter.- Specified by:
setCharset
in interfaceContentType
- Parameters:
enc
- parameter value to add to the MIME type
-
getCharset
This is used to retrieve thecharset
of this MIME type. This is a special parameter associated with the type, if the parameter is not contained within the type then this will return null, which typically means the default of ISO-8859-1.- Specified by:
getCharset
in interfaceContentType
- Returns:
- the value that this parameter contains
-
getParameter
This is used to retrieve an arbitrary parameter from the MIME type header. This ensures that values forboundary
or other such parameters are not lost when the header is parsed. This will return the value, unquoted if required, as a string.- Specified by:
getParameter
in interfaceContentType
- Parameters:
name
- this is the name of the parameter to be retrieved- Returns:
- this is the value for the parameter, or null if empty
-
setParameter
This will add a named parameter to the content type header. If a parameter of the specified name has already been added to the header then that value will be replaced by the new value given. Parameters such as theboundary
as well as other common parameters can be set with this method.- Specified by:
setParameter
in interfaceContentType
- Parameters:
name
- this is the name of the parameter to be addedvalue
- this is the value to associate with the name
-
init
protected void init()This will initialize the parser when it is ready to parse a newString
. This will reset the parser to a ready state. The init method is invoked by the parser when theParser.parse
method is invoked. -
parse
protected void parse()Reads and parses the MIME type from the givenString
object. This uses the syntax defined by RFC 2616 for the media-type syntax. This parser is only concerned with one parameter, thecharset
parameter. The syntax for the media type ismedia-type = token "/" token *( ";" parameter ) parameter = token | literal
-
toString
This will return the value of the MIME type as a string. This will concatenate the primary and secondary type values and add thecharset
parameter to the type which will recreate the content type.- Specified by:
toString
in interfaceContentType
- Overrides:
toString
in classObject
- Returns:
- this returns the string representation of the type
-