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    }