package org.psjava.judgesubmit;
import java.io.File;
import org.apache.commons.io.FilenameUtils;
import org.psjava.ds.map.MutableMap;
import org.psjava.goods.GoodMutableMapFactory;
public class LanguageDetector {
public static boolean isSupported(File file) {
return getMap().containsKey(getKey(file));
}
public static Language detect(File file) {
return getMap().get(getKey(file));
}
private static String getKey(File file) {
return getExtension(file).toLowerCase();
}
public static String getExtension(File file) {
return FilenameUtils.getExtension(file.getAbsolutePath());
}
private static MutableMap<String, Language> getMap() {
MutableMap<String, Language> map = GoodMutableMapFactory.getInstance().create();
map.put("java", Language.JAVA);
map.put("cpp", Language.CPP);
map.put("c", Language.C);
map.put("cc", Language.CPP);
return map;
}
private LanguageDetector() {
}
}