/**
* OLAT - Online Learning and Training<br>
* http://www.olat.org
* <p>
* This software is protected by the OLAT software license.<br>
* Use is subject to license terms.<br>
* See LICENSE.TXT in this distribution for details.
* <p>
* Copyright (c) JGS goodsolutions GmbH, Zurich, Switzerland. http://www.goodsolutions.ch <br>
* All rights reserved.
*/
package org.olat.core.gui.control.generic.folder;
import java.util.HashSet;
import java.util.Locale;
import java.util.StringTokenizer;
import org.olat.core.gui.translator.Translator;
import org.olat.core.util.Util;
/**
* Description:<br>
*
* <P>
* Initial Date: 22.06.2006 <br>
*
* @author Felix Jost
*/
public class FolderHelper {
private static final String FILETYPES = "avi bat bmp css doc docx dvi exe gif gz htm html jpeg jpg log midi mov mp3 mpeg mpg pdf png ppt pptx ps ra ram readme rtf tar tgz txt wav xls xlsx xml xsl zip";
private static HashSet knownFileTypes;
static {
// initialize known filetypes for faster access
FolderHelper.knownFileTypes = new HashSet();
StringTokenizer st = new StringTokenizer(FILETYPES, " ");
while (st.hasMoreElements()) {
FolderHelper.knownFileTypes.add(st.nextElement());
}
}
/**
* Extract the type of file based on suffix.
*
* @param filePath
* @param locale
* @return File type based on file extension.
*/
public static String extractFileType(String filePath, Locale locale) {
int lastDot = filePath.lastIndexOf('.');
if (lastDot > 0) {
if (lastDot < filePath.length())
return filePath.substring(lastDot + 1).toLowerCase();
}
Translator translator = Util.createPackageTranslator(FolderHelper.class, locale);
return translator.translate("UnknownFile");
}
/**
* @param fileType
* @return True if filetype is known.
*/
public static boolean isKnownFileType(String fileType) {
return FolderHelper.knownFileTypes.contains(fileType);
}
}