org.w3c.www.mime
Class MimeType

java.lang.Object
  extended by org.w3c.www.mime.MimeType
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable

public class MimeType
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable

This class is used to represent parsed MIME types. It creates this representation from a string based representation of the MIME type, as defined in the RFC 1345.

See Also:
Serialized Form

Field Summary
static MimeType APPLICATION_OCTET_STREAM
           
static MimeType APPLICATION_POSTSCRIPT
           
static MimeType APPLICATION_RDF_XML
           
static MimeType APPLICATION_X_JAVA_AGENT
           
static MimeType APPLICATION_X_WWW_FORM_URLENCODED
           
static MimeType APPLICATION_XHTML_XML
           
static MimeType APPLICATION_XML
           
protected  java.lang.String external
          external form of this mime type
static int MATCH_SPECIFIC_SUBTYPE
           
static int MATCH_SPECIFIC_TYPE
           
static int MATCH_SUBTYPE
           
static int MATCH_TYPE
           
static MimeType MESSAGE_HTTP
           
static MimeType MULTIPART_FORM_DATA
           
static int NO_MATCH
           
protected  java.lang.String[] pnames
          parameter names
protected  java.lang.String[] pvalues
          parameter values
static java.lang.String star
           
protected  java.lang.String subtype
          String representation of subtype
static MimeType TEXT
           
static MimeType TEXT_CSS
           
static MimeType TEXT_HTML
          List of well known MIME types:
static MimeType TEXT_PLAIN
           
static MimeType TEXT_XML
           
protected  java.lang.String type
          String representation of type
 
Constructor Summary
MimeType(java.lang.String spec)
          Construct MimeType object for the given string.
MimeType(java.lang.String type, java.lang.String subtype)
           
MimeType(java.lang.String type, java.lang.String subtype, java.lang.String[] pnames, java.lang.String[] pvalues)
           
 
Method Summary
 void addParameter(java.lang.String param, java.lang.String value)
          adds a parameterto a MimeType
 void addParameters(java.lang.String[] param, java.lang.String[] values)
          adds some parameters to a MimeType
 boolean equiv(MimeType mtype)
          Find out if mime types are equivalent, based on heuristics like text/xml <=> application/xml and other problems related to format that may have multiple mime types.
 MimeType getClone()
          get a clone of this object
 java.lang.String getParameterValue(java.lang.String name)
          Get a mime type parameter value.
 java.lang.String getSubtype()
          Get the minor type (subtype) of this mime type.
 java.lang.String getType()
          Get the major type of this mime type.
 boolean hasParameter(java.lang.String name)
          Does this MIME type has some value for the given parameter ?
static void main(java.lang.String[] args)
           
 int match(MimeType other)
          How good the given MimeType matches the receiver of the method ? This method returns a matching level among: NO_MATCHTypes not matching, MATCH_TYPETypes match, MATCH_SPECIFIC_TYPETypes match exactly, MATCH_SUBTYPETypes match, subtypes matches too MATCH_SPECIFIC_SUBTYPETypes match, subtypes matches exactly The matches are ranked from worst match to best match, a simple Max ( match[i], matched) will give the best match.
 void setParameter(java.lang.String param, java.lang.String value)
          Set the parameter to a MimeType (replace old value if any).
 java.lang.String toString()
          A printable representation of this MimeType.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TEXT_HTML

public static MimeType TEXT_HTML
List of well known MIME types:


APPLICATION_POSTSCRIPT

public static MimeType APPLICATION_POSTSCRIPT

TEXT_PLAIN

public static MimeType TEXT_PLAIN

APPLICATION_X_WWW_FORM_URLENCODED

public static MimeType APPLICATION_X_WWW_FORM_URLENCODED

APPLICATION_OCTET_STREAM

public static MimeType APPLICATION_OCTET_STREAM

MULTIPART_FORM_DATA

public static MimeType MULTIPART_FORM_DATA

APPLICATION_X_JAVA_AGENT

public static MimeType APPLICATION_X_JAVA_AGENT

MESSAGE_HTTP

public static MimeType MESSAGE_HTTP

TEXT_CSS

public static MimeType TEXT_CSS

TEXT_XML

public static MimeType TEXT_XML

APPLICATION_XML

public static MimeType APPLICATION_XML

TEXT

public static MimeType TEXT

APPLICATION_RDF_XML

public static MimeType APPLICATION_RDF_XML

APPLICATION_XHTML_XML

public static MimeType APPLICATION_XHTML_XML

star

public static java.lang.String star

NO_MATCH

public static final int NO_MATCH
See Also:
Constant Field Values

MATCH_TYPE

public static final int MATCH_TYPE
See Also:
Constant Field Values

MATCH_SPECIFIC_TYPE

public static final int MATCH_SPECIFIC_TYPE
See Also:
Constant Field Values

MATCH_SUBTYPE

public static final int MATCH_SUBTYPE
See Also:
Constant Field Values

MATCH_SPECIFIC_SUBTYPE

public static final int MATCH_SPECIFIC_SUBTYPE
See Also:
Constant Field Values

type

protected java.lang.String type
String representation of type


subtype

protected java.lang.String subtype
String representation of subtype


pnames

protected java.lang.String[] pnames
parameter names


pvalues

protected java.lang.String[] pvalues
parameter values


external

protected java.lang.String external
external form of this mime type

Constructor Detail

MimeType

public MimeType(java.lang.String spec)
         throws MimeTypeFormatException
Construct MimeType object for the given string. The string should be the representation of the type. This methods tries to be compliant with HTTP1.1, p 15, although it is not (because of quoted-text not being accepted). FIXME

Throws:
MimeTypeFormatException - if the string couldn't be parsed.

MimeType

public MimeType(java.lang.String type,
                java.lang.String subtype,
                java.lang.String[] pnames,
                java.lang.String[] pvalues)

MimeType

public MimeType(java.lang.String type,
                java.lang.String subtype)
Method Detail

match

public int match(MimeType other)
How good the given MimeType matches the receiver of the method ? This method returns a matching level among:
NO_MATCH
Types not matching,
MATCH_TYPE
Types match,
MATCH_SPECIFIC_TYPE
Types match exactly,
MATCH_SUBTYPE
Types match, subtypes matches too
MATCH_SPECIFIC_SUBTYPE
Types match, subtypes matches exactly
The matches are ranked from worst match to best match, a simple Max ( match[i], matched) will give the best match.

Parameters:
other - The other MimeType to match against ourself.

equiv

public boolean equiv(MimeType mtype)
Find out if mime types are equivalent, based on heuristics like text/xml <=> application/xml and other problems related to format that may have multiple mime types. Note that text/html and application/xhtml+xml are not exactly the same

Parameters:
mtype, - a MimeType
Returns:
a boolean, true if the two mime types are equivalent

toString

public java.lang.String toString()
A printable representation of this MimeType. The printed representation is guaranteed to be parseable by the String constructor.

Overrides:
toString in class java.lang.Object

hasParameter

public boolean hasParameter(java.lang.String name)
Does this MIME type has some value for the given parameter ?

Parameters:
name - The parameter to check.
Returns:
True if this parameter has a value, false otherwise.

getType

public java.lang.String getType()
Get the major type of this mime type.

Returns:
The major type, encoded as a String.

getSubtype

public java.lang.String getSubtype()
Get the minor type (subtype) of this mime type.

Returns:
The minor or subtype encoded as a String.

getParameterValue

public java.lang.String getParameterValue(java.lang.String name)
Get a mime type parameter value.

Parameters:
name - The parameter whose value is to be returned.
Returns:
The parameter value, or null if not found.

addParameters

public void addParameters(java.lang.String[] param,
                          java.lang.String[] values)
adds some parameters to a MimeType

Parameters:
param - a String array of parameter names
values - the corresponding String array of values

getClone

public MimeType getClone()
get a clone of this object

Returns:
another cloned instance of MimeType

addParameter

public void addParameter(java.lang.String param,
                         java.lang.String value)
adds a parameterto a MimeType

Parameters:
param - the parameter name, as a String
value - the parameter value, as a Sting

setParameter

public void setParameter(java.lang.String param,
                         java.lang.String value)
Set the parameter to a MimeType (replace old value if any).

Parameters:
param - the parameter name, as a String
value - the parameter value, as a Sting

main

public static void main(java.lang.String[] args)