001 package nl.tudelft.tbm.eeni.owl2java.utils;
002
003 import org.apache.commons.logging.Log;
004 import org.apache.commons.logging.LogFactory;
005
006 import java.io.File;
007 import java.io.IOException;
008
009 public class JavaUtils {
010
011 private static Log log = LogFactory.getLog(JavaUtils.class);
012
013 static final public String[] java_keywords = {"abstract", "double", "int", "strictfp", "boolean", "else", "interface",
014 "super", "break", "extends", "long", "switch", "byte", "final", "native", "synchronized", "case",
015 "finally", "new", "this", "catch", "float", "package", "throw", "char", "for", "private", "throws",
016 "class", "goto", "protected", "transient", "const", "if", "public", "try", "continue", "implements",
017 "return", "void", "default", "import", "short", "volatile", "do", "instanceof", "static", "while"};
018
019 static public java.util.Set<String> reservedWords = new java.util.HashSet<String>();
020
021 static {
022 for (int i = 0; i < java_keywords.length; i++) {
023 reservedWords.add(java_keywords[i]);
024 }
025 }
026
027 public static String toDirectoryFromPackage(String packageName) {
028 return packageName.replace(".", "/");
029 }
030
031 public static String toDirectoryFromPackage(String packageName, String baseDir) {
032 String pkgDir = toDirectoryFromPackage(packageName);
033 return baseDir + "/" + pkgDir;
034 }
035
036 static public String toValidJavaName(String aName) {
037 String retval = aName;
038
039 if (retval != null) {
040 retval = retval.replace('-', '_');
041 retval = retval.replace('.', '_');
042 if (reservedWords.contains(retval)) {
043 log.info("Not a valid java name: " + retval + "; appending '_'");
044 retval = "_" + retval;
045 }
046 }
047 return retval;
048
049 }
050
051 static public String toValidPackageName(String aName) {
052 return JavaUtils.toValidJavaName(aName).toLowerCase();
053 }
054
055 public static String getCurrentDirectory() {
056 String path = "";
057 try {
058 path = (new File(".")).getCanonicalPath();
059 } catch (IOException e) {
060 e.printStackTrace();
061 }
062 return path;
063 }
064
065 }