/*
* This library is part of OpenCms -
* the Open Source Content Management System
*
* Copyright (c) Alkacon Software GmbH (http://www.alkacon.com)
*
* This library 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 2.1 of the License, or (at your option) any later version.
*
* This library 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.
*
* For further information about Alkacon Software GmbH, please see the
* company website: http://www.alkacon.com
*
* For further information about OpenCms, please see the
* project website: http://www.opencms.org
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.opencms.applet.upload;
import java.io.File;
/**
* Util class for the FileUpload applet, collects various util methods.<p>
*
* Based on the Java 1.4 example.
*
* @since 6.0.0
*/
public final class FileUploadUtils {
/**
* Empty Constructor.<p>
*/
private FileUploadUtils() {
// noop
}
/**
* Gets the extension of a file.<p>
*
* @param f The file to get the extension from
* @return The file extension
*/
public static String getExtension(File f) {
String ext = null;
if (f != null) {
String s = f.getName();
int i = s.lastIndexOf('.');
if ((i > 0) && (i < s.length() - 1)) {
ext = s.substring(i).toLowerCase();
}
}
return ext;
}
/**
* Returns <code>true</code> in case the given extension is one of the known image extensions.<p>
*
* Known extensions are: <code>.gif, .tiff, .jpeg, .jpg, .bmp, .png, .pnm, .pgm, .ppm, .pbm</code>.<p>
*
* @param extension the extension to check, must start with a dot '.'
* @return <code>true</code> in case the given extension is one of the known image extensions
*/
public static boolean isImageExtension(String extension) {
if (extension != null) {
return (extension.equals(".gif")
|| extension.equals(".tiff")
|| extension.equals(".tif")
|| extension.equals(".jpeg")
|| extension.equals(".jpg")
|| extension.equals(".bmp")
|| extension.equals(".pnm")
|| extension.equals(".pbm")
|| extension.equals(".pgm")
|| extension.equals(".ppm") || extension.equals(".png"));
} else {
return false;
}
}
/**
* Returns <code>true</code> in case the given extension is one of the known office file extensions.<p>
*
* @param extension the extension to check, must start with a dot '.'
* @return <code>true</code> in case the given extension is one of the known office file extensions
*/
public static boolean isOfficeExtension(String extension) {
// TODO: next modification move this to a static sorted map for faster lookup:
if (extension != null) {
return (extension.equals(".odt")
|| extension.equals(".ods")
|| extension.equals(".odp")
|| extension.equals(".odg")
|| extension.equals(".pdf")
|| extension.equals(".doc")
|| extension.equals(".xls")
|| extension.equals(".vsd")
|| extension.equals(".ppt")
|| extension.equals(".docx")
|| extension.equals(".docm")
|| extension.equals(".dotx")
|| extension.equals(".dotm")
|| extension.equals(".xlsx")
|| extension.equals(".xlsm")
|| extension.equals(".xlsb")
|| extension.equals(".xlam")
|| extension.equals(".pptx")
|| extension.equals(".pptm")
|| extension.equals(".ppsx")
|| extension.equals(".ppsm")
|| extension.equals(".potx")
|| extension.equals(".potm")
|| extension.equals(".ppam")
|| extension.equals(".sldx")
|| extension.equals(".sldm") || extension.equals(".thmx")
);
} else {
return false;
}
}
/**
* Returns <code>true</code> in case the given extension is one of the known text file extensions.<p>
*
* Known extensions are: <code>.txt, .ini, .bat, .cmd, .sh, .java, .log, .xml, .html, .sys</code>.<p>
*
* @param extension the extension to check, must start with a dot '.'
* @return <code>true</code> in case the given extension is one of the known text file extensions
*/
public static boolean isTextExtension(String extension) {
if (extension != null) {
return (extension.equals(".txt")
|| extension.equals(".ini")
|| extension.equals(".bat")
|| extension.equals(".cmd")
|| extension.equals(".sh")
|| extension.equals(".java")
|| extension.equals(".log")
|| extension.equals(".xml")
|| extension.equals(".html") || extension.equals(".sys"));
} else {
return false;
}
}
/**
* Returns <code>true</code> in case the given extension is one of the known office file extensions.<p>
*
* Known extensions are: <code>.html, .htm, .shtml, .xml, .xhtml, .js, .css and .txt</code>.<p>
*
* @param extension the extension to check, must start with a dot '.'
*
* @return <code>true</code> in case the given extension is one of the known office file extensions
*/
public static boolean isWebExtension(String extension) {
if (extension != null) {
return (extension.equals(".html")
|| extension.equals(".htm")
|| extension.equals(".shtml")
|| extension.equals(".xml")
|| extension.equals(".xhtml")
|| extension.equals(".js")
|| extension.equals(".css") || extension.equals(".txt"));
} else {
return false;
}
}
}