/**
* MimeType.java
* Copyright 2010 by Michael Peter Christen
* First released 22.4.2010 at http://yacy.net
*
* This file is part of YaCy Content Integration
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program in the file COPYING.LESSER.
* If not, see <http://www.gnu.org/licenses/>.
*/
package net.yacy.cider.document;
public enum MimeType {
APPLICATION_BITTORRENT("application/x-bittorrent"),
APPLICATION_BZIP2("application/x-bzip2"),
APPLICATION_COMPRESS("application/x-compress"),
APPLICATION_DVI("application/x-dvi"),
APPLICATION_GZIP("application/gzip"),
APPLICATION_HTTPD_PHP("application/x-httpd-php"),
APPLICATION_JAVA_ARCHIVE("application/java-archive"),
APPLICATION_LZH("application/x-lzh"),
APPLICATION_MAXC_BINHEX40("application/mac-binhex40"),
APPLICATION_MSEXCEL("application/msexcel"),
APPLICATION_MSEXCEL_2("application/vnd.ms-excel"),
APPLICATION_MSPOWERPOINT("application/mspowerpoint"),
APPLICATION_MSPOWERPOINT_2 ("application/vnd.ms-powerpoint"),
APPLICATION_MSWORD("application/msword"),
APPLICATION_NS_PROXY_AUTOCONFIG("application/x-ns-proxy-autoconfig"),
APPLICATION_OCTET_STREAM("application/octet-stream"),
APPLICATION_OO_CALC("application/OOo-calc"),
APPLICATION_OO_DRAW("application/OOo-draw"),
APPLICATION_OO_IMPRESS("application/OOo-impress"),
APPLICATION_OO_WRITER("application/OOo-writer"),
APPLICATION_OPENDOCUMENT_CHART("application/vnd.oasis.opendocument.chart"),
APPLICATION_OPENDOCUMENT_DATABASE("application/vnd.oasis.opendocument.database"),
APPLICATION_OPENDOCUMENT_FORMULA("application/vnd.oasis.opendocument.formula"),
APPLICATION_OPENDOCUMENT_GRAPHICS("application/vnd.oasis.opendocument.graphics"),
APPLICATION_OPENDOCUMENT_GRAPHICS_TEMPLATE("application/vnd.oasis.opendocument.graphics-template"),
APPLICATION_OPENDOCUMENT_IMAGE("application/vnd.oasis.opendocument.image"),
APPLICATION_OPENDOCUMENT_PRESENTATION("application/vnd.oasis.opendocument.presentation"),
APPLICATION_OPENDOCUMENT_PRESENTATION_TEMPLATE("application/vnd.oasis.opendocument.presentation-template"),
APPLICATION_OPENDOCUMENT_SPREADSHEET("application/vnd.oasis.opendocument.spreadsheet"),
APPLICATION_OPENDOCUMENT_SPREADSHEET_TEMPLATE("application/vnd.oasis.opendocument.spreadsheet-template"),
APPLICATION_OPENDOCUMENT_TEXT("application/vnd.oasis.opendocument.text"),
APPLICATION_OPENDOCUMENT_TEXT_MASTER("application/vnd.oasis.opendocument.text-master"),
APPLICATION_OPENDOCUMENT_TEXT_TEMPLATE("application/vnd.oasis.opendocument.text-template"),
APPLICATION_PDF("application/pdf"),
APPLICATION_XPDF("application/x-pdf"),
APPLICATION_ACROBAT("application/acrobat"),
APPLICATION_VNDPDF("applications/vnd.pdf"),
APPLICATION_POSTSCRIPT("application/postscript"),
APPLICATION_RAR("application/x-rar"),
APPLICATION_RDF_XML("application/rdf+xml"),
APPLICATION_RPM("application/x-rpm"),
APPLICATION_RSS_XML("application/rss+xml"),
APPLICATION_RTF("application/rtf"),
APPLICATION_SEVENZIP_COMPRESSED("application/x-7z-compressed"),
APPLICATION_SHOCKWAVE_FLASH("application/x-shockwave-flash"),
APPLICATION_TAR("application/tar"),
APPLICATION_TEX("application/x-tex"),
APPLICATION_VISIO("application/x-visio"),
APPLICATION_VISIO_2("application/vnd.visio"),
APPLICATION_XPINSTALL("application/x-xpinstall"),
APPLICATION_ZIP("application/zip"),
AUDIO_AIFF("audio/x-aiff"),
AUDIO_BASIC("audio/basic"),
AUDIO_MPEG("audio/mpeg"),
AUDIO_OGG_VORBIS("audio/ogg-vorbis"),
AUDIO_QT_STREAM("audio/x-qt-stream"),
AUDIO_REALAUDIO("audio/x-pn-realaudio"),
AUDIO_REALAUDIO_PLUGIN("audio/x-pn-realaudio-plugin"),
AUDIO_WAV("audio/x-wav"),
IMAGE_BMP("image/bmp"),
IMAGE_GIF("image/gif"),
IMAGE_JPEG("image/jpeg"),
IMAGE_PNG("image/png"),
IMAGE_SVG_XML("image/svg+xml"),
IMAGE_TIFF("image/tiff"),
TEXT_CSS("text/css"),
TEXT_CSV("text/csv"),
TEXT_HTML("text/html"),
TEXT_JAVASCRIPT("text/javascript"),
TEXT_OPML("text/x-opml"),
TEXT_PLAIN("text/plain"),
TEXT_PDF("text/pdf"),
TEXT_XPDF("text/x-pdf"),
TEXT_RTF("text/rtf"),
TEXT_VCARD("text/x-vcard"),
TEXT_XHTML_XML("text/xhtml+xml"),
TEXT_XML("text/xml"),
VIDEO_M4V("video/x-m4v"),
VIDEO_MP4("video/mp4"),
VIDEO_MPEG("video/mpeg"),
VIDEO_MSVIDEO("video/x-msvideo"),
VIDEO_QUICKGTIME("video/quicktime"),
VIDEO_WMV("video/x-ms-wmv");
private String mimetype;
private MimeType(final String mimetype) {
this.mimetype = mimetype;
}
public String getMimetype() {
return mimetype;
}
/**
* Find the MIME-type for the given content type
* @param contentType
* @return the MIME-type or null
*/
static public MimeType getMimetype(String contentType) {
if (contentType == null) return MimeType.APPLICATION_OCTET_STREAM;
contentType = contentType.toLowerCase();
final int pos = contentType.indexOf(';');
contentType = ((pos < 0) ? contentType.trim() : contentType.substring(0, pos).trim());
for (MimeType mimetype : MimeType.values()) {
if (contentType.startsWith(mimetype.getMimetype())) {
return mimetype;
}
}
return null;
}
}