/* * 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)); } }