/*
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* 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.
*
* Copyright 2006 - 2008 Pentaho Corporation. All rights reserved.
*/
package org.pentaho.platform.util.web;
import java.util.HashMap;
import java.util.Map;
public class MimeHelper {
public static String MIMETYPE_XACTION = "text/xaction+xml"; //$NON-NLS-1$
private static final Map<String, String> mimes = new HashMap<String, String>();
private static final Map<String, String> extensions = new HashMap<String, String>();
static {
MimeHelper.mimes.put("application/rtf", ".rtf"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("application/msword", ".doc"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("application/pdf", ".pdf"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("application/vnd.ms-excel", ".xls"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("application/vnd.ms-powerpoint", ".ppt"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("application/vnd.ms-project", ".mpp"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("application/zip", ".zip"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("audio/mpeg", ".mp3"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("audio/x-wav", ".wav"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("image/bmp", ".bmp"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("image/gif", ".gif"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("image/jpeg", ".jpg"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("image/png", ".png"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("image/svg+xml", ".svg"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("image/tiff", ".tif"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("text/csv", ".csv"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("text/html", ".html"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("text/plain", ".txt"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("video/mpeg", ".mpg"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("video/x-msvideo", ".avi"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("text/xaction+xml", ".xaction"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("text/css", ".css"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("text/javascript", ".js"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("text/xml", ".xml"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.mimes.put("application/x-shockwave-flash", ".swf"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".rtf", "application/rtf"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".doc", "application/msword"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".pdf", "application/pdf"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".xls", "application/vnd.ms-excel"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".ppt", "application/vnd.ms-powerpoint"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".mpp", "application/vnd.ms-project"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".zip", "application/zip"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".mp3", "audio/mpeg"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".wav", "audio/x-wav"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".bmp", "image/bmp"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".gif", "image/gif"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".jpe", "image/jpeg"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".jpeg", "image/jpeg"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".jpg", "image/jpeg"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".png", "image/png"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".svg", "image/svg+xml"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".tif", "image/tiff"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".tiff", "image/tiff"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".csv", "text/csv"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".htm", "text/html"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".html", "text/html"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".txt", "text/plain"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".mpe", "video/mpeg"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".mpeg", "video/mpeg"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".mpg", "video/mpeg"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".avi", "video/x-msvideo"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".xaction", "text/xaction+xml"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".css", "text/css"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".js", "text/javascript"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".xml", "text/xml"); //$NON-NLS-1$ //$NON-NLS-2$
MimeHelper.extensions.put(".swf", "application/x-shockwave-flash"); //$NON-NLS-1$ //$NON-NLS-2$
}
public static String getExtension(final String mimeType) {
return MimeHelper.mimes.get(mimeType);
}
public static String getMimeTypeFromExtension(final String extension) {
return MimeHelper.extensions.get(extension);
}
public static String getMimeTypeFromFileName(final String fileName) {
int index = fileName.lastIndexOf('.');
if (index == -1) {
return null;
}
return MimeHelper.extensions.get(fileName.substring(index));
}
}