001: /*
002: * This file is part of the Echo Web Application Framework (hereinafter "Echo").
003: * Copyright (C) 2002-2005 NextApp, Inc.
004: *
005: * Version: MPL 1.1/GPL 2.0/LGPL 2.1
006: *
007: * The contents of this file are subject to the Mozilla Public License Version
008: * 1.1 (the "License"); you may not use this file except in compliance with
009: * the License. You may obtain a copy of the License at
010: * http://www.mozilla.org/MPL/
011: *
012: * Software distributed under the License is distributed on an "AS IS" basis,
013: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
014: * for the specific language governing rights and limitations under the
015: * License.
016: *
017: * Alternatively, the contents of this file may be used under the terms of
018: * either the GNU General Public License Version 2 or later (the "GPL"), or
019: * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
020: * in which case the provisions of the GPL or the LGPL are applicable instead
021: * of those above. If you wish to allow use of your version of this file only
022: * under the terms of either the GPL or the LGPL, and not to allow others to
023: * use your version of this file under the terms of the MPL, indicate your
024: * decision by deleting the provisions above and replace them with the notice
025: * and other provisions required by the GPL or the LGPL. If you do not delete
026: * the provisions above, a recipient may use your version of this file under
027: * the terms of any one of the MPL, the GPL or the LGPL.
028: */
029:
030: package nextapp.echo2.webrender;
031:
032: import java.io.Serializable;
033:
034: /**
035: * A representation of a content-type.
036: * This object contains a MIME-type and a flag indicating whether the
037: * content-type is used exclusively for binary data (i.e., indicating whether
038: * a character encoding needs to be specified).
039: */
040: public class ContentType implements Serializable {
041:
042: public static final ContentType IMAGE_GIF = new ContentType(
043: "image/gif", true);
044: public static final ContentType IMAGE_PNG = new ContentType(
045: "image/png", true);
046: public static final ContentType IMAGE_JPEG = new ContentType(
047: "image/jpeg", true);
048: public static final ContentType MULTIPART_FORM_DATA = new ContentType(
049: "multipart/form-data", false);
050: public static final ContentType TEXT_HTML = new ContentType(
051: "text/html", false);
052: public static final ContentType TEXT_JAVASCRIPT = new ContentType(
053: "text/javascript", false);
054: public static final ContentType TEXT_PLAIN = new ContentType(
055: "text/plain", false);
056: public static final ContentType TEXT_XML = new ContentType(
057: "text/xml", false);
058:
059: private String mimeType = null;
060: private boolean binary = false;
061:
062: /**
063: * Creates a new content type.
064: *
065: * @param mimeType The MIME type of the content type.
066: * @param binary True if the content type is used exclusively for binary
067: * data, i.e., it does not require any character encoding
068: */
069: public ContentType(String mimeType, boolean binary) {
070: super ();
071:
072: if (mimeType == null) {
073: throw new NullPointerException(
074: "Cannot create content type with null MIME type");
075: }
076:
077: this .mimeType = mimeType;
078: this .binary = binary;
079: }
080:
081: /**
082: * @see java.lang.Object#equals(Object)
083: */
084: public boolean equals(Object o) {
085: boolean equal;
086:
087: if (o instanceof ContentType) {
088: ContentType that = (ContentType) o;
089: equal = this .mimeType.equals(that.mimeType);
090: } else {
091: equal = false;
092: }
093:
094: return equal;
095: }
096:
097: /**
098: * Returns the MIME type.
099: *
100: * @return The MIME type.
101: */
102: public String getMimeType() {
103: return mimeType;
104: }
105:
106: /**
107: * Determines if the content type is used exclusively for binary
108: * data, i.e., it does not require any character encoding
109: *
110: * @return true if the content type is binary
111: */
112: public boolean isBinary() {
113: return binary;
114: }
115:
116: /**
117: * @see java.lang.Object#toString()
118: */
119: public String toString() {
120: return mimeType;
121: }
122: }
|