/**
* Extension.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;
import java.util.HashMap;
import java.util.Map;
public enum Extension {
SEVENZIP("7z"),
AI("ai"),
AIFF("aiff"),
ASP("asp"),
ASPX("aspx"),
AU("au"),
AVI("avi"),
BAT("bat"),
BIN("bin"),
BMP("bmp"),
BZ2("bz2"),
CLASS("class"),
C("c"),
COM("com"),
CSS("css"),
CSV("csv"),
DB("db"),
DLL("dll"),
DOC("doc"),
DOCX("docx"),
DOT("dot"),
DVI("dvi"),
EPS("eps"),
EXE("exe"),
GIF("gif"),
GZ("gz"),
HQX("hqx"),
HTM("htm"),
HTML("html"),
ICO("ico"),
JAR("jar"),
JAVA("java"),
JPE("jpe"),
JPEG("jpeg"),
JPG("jpg"),
JS("js"),
JSP("jsp"),
LHA("lha"),
LZH("lzh"),
M4V("m4v"),
MOV("mov"),
MP2("mp2"),
MP3("mp3"),
MP4("mp4"),
MPE("mpe"),
MPEG("mpeg"),
MPG("mpg"),
ODT("odt"),
ODS("ods"),
ODP("odp"),
ODG("odg"),
ODC("odc"),
ODF("odf"),
ODB("odb"),
ODI("odi"),
ODM("odm"),
OPML("opml"),
OTT("ott"),
OTS("ots"),
OTP("otp"),
OTG("otg"),
OGG("ogg"),
PAC("pac"),
PDF("pdf"),
PHP("php"),
PHTML("phtml"),
PL("pl"),
PNG("png"),
POT("pot"),
PPS("pps"),
PPT("ppt"),
PPTX("pptx"),
PPZ("ppz"),
PS("ps"),
PY("py"),
QT("qt"),
RA("ra"),
RAM("ram"),
RAR("rar"),
RDF("rdf"),
RM("rm"),
RPM("rpm"),
RSS("rss"),
RTF("rtf"),
SH("sh"),
SHTML("shtml"),
STREAM("stream"),
SVG("svg"),
SWF("swf"),
SXW("sxw"),
SXC("sxc"),
SXD("sxd"),
SXI("sxi"),
TAR("tar"),
TBZ("tbz"),
TBZ2("tbz2"),
TEX("tex"),
TGZ("tgz"),
TIF("tif"),
TIFF("tiff"),
TORRENT("torrent"),
TXT("txt"),
VCARD("vcard"),
VDX("vdx"),
VTX("vtx"),
VCF("vcf"),
VSD("vsd"),
VST("vst"),
VSS("vss"),
WAV("wav"),
WMV("wmv"),
XHTML("xhtml"),
XLA("xla"),
XLS("xls"),
XLSX("xlsx"),
XPI("xpi"),
XSL("xsl"),
XML("xml"),
Z("Z"),
ZIP("zip");
private String ext;
private static Map<Extension, MimeType> mimeMapper = new HashMap<Extension, MimeType>();
private static Map<String, Extension> extMapper = new HashMap<String, Extension>();
static {
mimeMapper.put(SXC, MimeType.APPLICATION_OO_CALC);
mimeMapper.put(SXD, MimeType.APPLICATION_OO_DRAW);
mimeMapper.put(SXI, MimeType.APPLICATION_OO_IMPRESS);
mimeMapper.put(SXW, MimeType.APPLICATION_OO_WRITER);
mimeMapper.put(GZ, MimeType.APPLICATION_GZIP);
mimeMapper.put(JAR, MimeType.APPLICATION_JAVA_ARCHIVE);
mimeMapper.put(BIN, MimeType.APPLICATION_OCTET_STREAM);
mimeMapper.put(PDF, MimeType.APPLICATION_PDF);
mimeMapper.put(AI, MimeType.APPLICATION_POSTSCRIPT);
mimeMapper.put(EPS, MimeType.APPLICATION_POSTSCRIPT);
mimeMapper.put(PS, MimeType.APPLICATION_POSTSCRIPT);
mimeMapper.put(RDF, MimeType.APPLICATION_RDF_XML);
mimeMapper.put(RSS, MimeType.APPLICATION_RSS_XML);
mimeMapper.put(RTF, MimeType.APPLICATION_RTF);
mimeMapper.put(TAR, MimeType.APPLICATION_TAR);
mimeMapper.put(TGZ, MimeType.APPLICATION_TAR);
mimeMapper.put(SEVENZIP, MimeType.APPLICATION_SEVENZIP_COMPRESSED);
mimeMapper.put(TORRENT, MimeType.APPLICATION_BITTORRENT);
mimeMapper.put(BZ2, MimeType.APPLICATION_BZIP2);
mimeMapper.put(TBZ, MimeType.APPLICATION_BZIP2);
mimeMapper.put(TBZ2, MimeType.APPLICATION_BZIP2);
mimeMapper.put(Z, MimeType.APPLICATION_COMPRESS);
mimeMapper.put(DVI, MimeType.APPLICATION_DVI);
mimeMapper.put(PHP, MimeType.APPLICATION_HTTPD_PHP);
mimeMapper.put(PHTML, MimeType.APPLICATION_HTTPD_PHP);
mimeMapper.put(LZH, MimeType.APPLICATION_LZH);
mimeMapper.put(LHA, MimeType.APPLICATION_LZH);
mimeMapper.put(PAC, MimeType.APPLICATION_NS_PROXY_AUTOCONFIG);
mimeMapper.put(RAR, MimeType.APPLICATION_RAR);
mimeMapper.put(RPM, MimeType.APPLICATION_RPM);
mimeMapper.put(SWF, MimeType.APPLICATION_SHOCKWAVE_FLASH);
mimeMapper.put(TEX, MimeType.APPLICATION_TEX);
mimeMapper.put(VDX, MimeType.APPLICATION_VISIO);
mimeMapper.put(VTX, MimeType.APPLICATION_VISIO);
mimeMapper.put(VSD, MimeType.APPLICATION_VISIO);
mimeMapper.put(VST, MimeType.APPLICATION_VISIO);
mimeMapper.put(VSS, MimeType.APPLICATION_VISIO);
mimeMapper.put(XPI, MimeType.APPLICATION_XPINSTALL);
mimeMapper.put(ZIP, MimeType.APPLICATION_ZIP);
mimeMapper.put(HQX, MimeType.APPLICATION_MAXC_BINHEX40);
mimeMapper.put(XLA, MimeType.APPLICATION_MSEXCEL);
mimeMapper.put(XLS, MimeType.APPLICATION_MSEXCEL);
mimeMapper.put(XLSX, MimeType.APPLICATION_MSEXCEL);
mimeMapper.put(POT, MimeType.APPLICATION_MSPOWERPOINT);
mimeMapper.put(PPT, MimeType.APPLICATION_MSPOWERPOINT);
mimeMapper.put(PPS, MimeType.APPLICATION_MSPOWERPOINT);
mimeMapper.put(PPTX, MimeType.APPLICATION_MSPOWERPOINT);
mimeMapper.put(PPZ, MimeType.APPLICATION_MSPOWERPOINT);
mimeMapper.put(DB, MimeType.APPLICATION_OCTET_STREAM);
mimeMapper.put(DLL, MimeType.APPLICATION_OCTET_STREAM);
mimeMapper.put(EXE, MimeType.APPLICATION_OCTET_STREAM);
mimeMapper.put(CLASS, MimeType.APPLICATION_OCTET_STREAM);
mimeMapper.put(COM, MimeType.APPLICATION_OCTET_STREAM);
mimeMapper.put(ODC, MimeType.APPLICATION_OPENDOCUMENT_CHART);
mimeMapper.put(ODB, MimeType.APPLICATION_OPENDOCUMENT_DATABASE);
mimeMapper.put(ODF, MimeType.APPLICATION_OPENDOCUMENT_FORMULA);
mimeMapper.put(ODG, MimeType.APPLICATION_OPENDOCUMENT_GRAPHICS);
mimeMapper.put(OTG, MimeType.APPLICATION_OPENDOCUMENT_GRAPHICS_TEMPLATE);
mimeMapper.put(ODI, MimeType.APPLICATION_OPENDOCUMENT_IMAGE);
mimeMapper.put(ODP, MimeType.APPLICATION_OPENDOCUMENT_PRESENTATION);
mimeMapper.put(OTP, MimeType.APPLICATION_OPENDOCUMENT_PRESENTATION_TEMPLATE);
mimeMapper.put(ODS, MimeType.APPLICATION_OPENDOCUMENT_SPREADSHEET);
mimeMapper.put(OTS, MimeType.APPLICATION_OPENDOCUMENT_SPREADSHEET_TEMPLATE);
mimeMapper.put(ODT, MimeType.APPLICATION_OPENDOCUMENT_TEXT);
mimeMapper.put(ODM, MimeType.APPLICATION_OPENDOCUMENT_TEXT_MASTER);
mimeMapper.put(OTT, MimeType.APPLICATION_OPENDOCUMENT_TEXT_TEMPLATE);
mimeMapper.put(AU, MimeType.AUDIO_BASIC);
mimeMapper.put(MP2, MimeType.AUDIO_MPEG);
mimeMapper.put(MP3, MimeType.AUDIO_MPEG);
mimeMapper.put(OGG, MimeType.AUDIO_OGG_VORBIS);
mimeMapper.put(AIFF, MimeType.AUDIO_AIFF);
mimeMapper.put(RA, MimeType.AUDIO_REALAUDIO);
mimeMapper.put(RAM, MimeType.AUDIO_REALAUDIO);
mimeMapper.put(RM, MimeType.AUDIO_REALAUDIO_PLUGIN);
mimeMapper.put(STREAM, MimeType.AUDIO_QT_STREAM);
mimeMapper.put(WAV, MimeType.AUDIO_WAV);
mimeMapper.put(BMP, MimeType.IMAGE_BMP);
mimeMapper.put(GIF, MimeType.IMAGE_GIF);
mimeMapper.put(JPE, MimeType.IMAGE_JPEG);
mimeMapper.put(JPG, MimeType.IMAGE_JPEG);
mimeMapper.put(JPEG, MimeType.IMAGE_JPEG);
mimeMapper.put(PNG, MimeType.IMAGE_PNG);
mimeMapper.put(SVG, MimeType.IMAGE_SVG_XML);
mimeMapper.put(TIF, MimeType.IMAGE_TIFF);
mimeMapper.put(TIFF, MimeType.IMAGE_TIFF);
mimeMapper.put(CSS, MimeType.TEXT_CSS);
mimeMapper.put(CSV, MimeType.TEXT_CSV);
mimeMapper.put(ASP, MimeType.TEXT_HTML);
mimeMapper.put(ASPX, MimeType.TEXT_HTML);
mimeMapper.put(HTM, MimeType.TEXT_HTML);
mimeMapper.put(HTML, MimeType.TEXT_HTML);
mimeMapper.put(JSP, MimeType.TEXT_HTML);
mimeMapper.put(SHTML, MimeType.TEXT_HTML);
mimeMapper.put(PY, MimeType.TEXT_HTML);
mimeMapper.put(JS, MimeType.TEXT_JAVASCRIPT);
mimeMapper.put(C, MimeType.TEXT_PLAIN);
mimeMapper.put(BAT, MimeType.TEXT_PLAIN);
mimeMapper.put(TXT, MimeType.TEXT_PLAIN);
mimeMapper.put(JAVA, MimeType.TEXT_PLAIN);
mimeMapper.put(PL, MimeType.TEXT_PLAIN);
mimeMapper.put(SH, MimeType.TEXT_PLAIN);
mimeMapper.put(OPML, MimeType.TEXT_OPML);
mimeMapper.put(RTF, MimeType.TEXT_RTF);
mimeMapper.put(VCARD, MimeType.TEXT_VCARD);
mimeMapper.put(XHTML, MimeType.TEXT_XHTML_XML);
mimeMapper.put(XML, MimeType.TEXT_XML);
mimeMapper.put(MP4, MimeType.VIDEO_MP4);
mimeMapper.put(MPE, MimeType.VIDEO_MPEG);
mimeMapper.put(MPEG, MimeType.VIDEO_MPEG);
mimeMapper.put(MPG, MimeType.VIDEO_MPEG);
mimeMapper.put(MOV, MimeType.VIDEO_QUICKGTIME);
mimeMapper.put(QT, MimeType.VIDEO_QUICKGTIME);
mimeMapper.put(M4V, MimeType.VIDEO_M4V);
mimeMapper.put(WMV, MimeType.VIDEO_WMV);
mimeMapper.put(AVI, MimeType.VIDEO_MSVIDEO);
for (Extension ext: Extension.values()) {
extMapper.put(ext.name().toLowerCase(), ext);
}
}
private Extension(final String ext) {
this.ext = ext;
}
public String getFileNameExtension() {
return ext;
}
public static MimeType getMimeType(Extension ext) {
return mimeMapper.get(ext);
}
public static Extension getFileNameExtension(String extString) {
return extMapper.get(extString.toLowerCase());
}
}