diff options
Diffstat (limited to 'simple/simple-http/src/main/java/org/simpleframework/http/ContentType.java')
-rw-r--r-- | simple/simple-http/src/main/java/org/simpleframework/http/ContentType.java | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/simple/simple-http/src/main/java/org/simpleframework/http/ContentType.java b/simple/simple-http/src/main/java/org/simpleframework/http/ContentType.java new file mode 100644 index 0000000..c62687d --- /dev/null +++ b/simple/simple-http/src/main/java/org/simpleframework/http/ContentType.java @@ -0,0 +1,142 @@ +/* + * ContentType.java February 2001 + * + * Copyright (C) 2001, Niall Gallagher <niallg@users.sf.net> + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + */ + +package org.simpleframework.http; + +/** + * This provides access to the MIME type parts, that is the primary + * type, the secondary type and an optional character set parameter. + * The <code>charset</code> parameter is one of many parameters that + * can be associated with a MIME type. This however this exposes this + * parameter with a typed method. + * <p> + * The <code>getCharset</code> 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 + */ +public interface ContentType { + + /** + * This method is used to get the primary and secondary parts + * joined together with a "/". This is typically how a content + * type is examined. Here convenience is most important, we can + * easily compare content types without any parameters. + * + * @return this returns the primary and secondary types + */ + String getType(); + + /** + * 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. + * + * @param type the type to set for the primary type of this + */ + void setPrimary(String type); + + /** + * 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 example <code>text/plain; charset=UTF-8</code>. This will + * return the text value. If there is no primary type then this + * will return <code>null</code> otherwise the string value. + * + * @return the primary type part of this MIME type + */ + String getPrimary(); + + /** + * 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. + * + * @param type the type to set for the primary type of this + */ + void setSecondary(String type); + + /** + * 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 example <code>text/html; charset=UTF-8</code>. This + * will return the HTML value. If there is no secondary type then + * this will return <code>null</code> otherwise the string value. + * + * @return the primary type part of this MIME type + */ + String getSecondary(); + + /** + * This will set the <code>charset</code> to whatever value the + * string contains. If the string is null then this will not set + * the parameter to any value and the <code>toString</code> method + * will not contain any details of the parameter. + * + * @param charset parameter value to add to the MIME type + */ + void setCharset(String charset); + + /** + * This is used to retrieve the <code>charset</code> 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. + * + * @return the value that this parameter contains + */ + String getCharset(); + + /** + * This is used to retrieve an arbitrary parameter from the MIME + * type header. This ensures that values for <code>boundary</code> + * or other such parameters are not lost when the header is parsed. + * This will return the value, unquoted if required, as a string. + * + * @param name this is the name of the parameter to be retrieved + * + * @return this is the value for the parameter, or null if empty + */ + String getParameter(String name); + + /** + * 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 the <code>boundary</code> as well as other + * common parameters can be set with this method. + * + * @param name this is the name of the parameter to be added + * @param value this is the value to associate with the name + */ + void setParameter(String name, String value); + + /** + * This will return the value of the MIME type as a string. This + * will concatenate the primary and secondary type values and + * add the <code>charset</code> parameter to the type which will + * recreate the content type. + * + * @return this returns the string representation of the type + */ + String toString(); +} |