1 18 package org.objectweb.jorm.xml2mi.lib; 19 20 import org.objectweb.jorm.metainfo.api.NameDef; 21 import org.objectweb.jorm.metainfo.api.ClassMapping; 22 import org.objectweb.jorm.metainfo.api.Class; 23 import org.objectweb.jorm.util.api.Loggable; 24 import org.objectweb.util.monolog.api.BasicLevel; 25 import org.objectweb.util.monolog.api.Logger; 26 import org.objectweb.util.monolog.api.LoggerFactory; 27 28 import java.util.Hashtable ; 29 30 35 public class ParserHelper implements Loggable { 36 37 static String fileSeparator = System.getProperty("file.separator"); 38 static String pathSeparator = System.getProperty("path.separator"); 39 40 45 protected Hashtable motable = null; 46 47 50 protected Logger logger; 51 52 55 protected LoggerFactory loggerFactory; 56 57 58 65 protected NameDef getIdNameDef(Class currentClass, String linkend) { 66 NameDef nameDef = null; 67 int idx1 = linkend.indexOf("/"); 68 if (idx1 == 0) { String fqcn = null; 70 String namedefName = null; 71 int idx2 = linkend.indexOf("/", idx1 + 1); 72 if (idx2 == -1) { fqcn = linkend.substring(1); 74 namedefName = ""; 75 } else { fqcn = linkend.substring(1, idx2); 77 namedefName = linkend.substring(idx2 + 1); 78 79 } 80 if (logger.isLoggable(BasicLevel.DEBUG)) { 81 logger.log(BasicLevel.DEBUG, 82 " fqcn " + fqcn + 83 " namdefname " + namedefName); 84 } 85 fqcn = fqcn.replace('.', fileSeparator.charAt(0)) + ".pd"; 86 Class clazz = (Class ) motable.get(fqcn); 87 if (clazz != null) { 88 if (logger.isLoggable(BasicLevel.DEBUG)) { 89 logger.log(BasicLevel.DEBUG, 90 "Fetching the id name def of the Class " + clazz.getFQName()); 91 } 92 nameDef = clazz.getNameDef(namedefName); 93 } 94 95 } else { if (logger.isLoggable(BasicLevel.DEBUG)) { 97 logger.log(BasicLevel.DEBUG, 98 "Fetching the id name def of the current Class " + currentClass.getFQName()); 99 } 100 nameDef = currentClass.getNameDef(linkend); 101 } 102 103 if ((nameDef != null) && (logger.isLoggable(BasicLevel.DEBUG))) { 104 if (nameDef.isFieldName()) 105 logger.log(BasicLevel.DEBUG, "fieldName: " + nameDef.getFieldName()); 106 else if (nameDef.isNameRef()) 107 logger.log(BasicLevel.DEBUG, "NameRef: " + nameDef.getNameRef()); 108 } 109 return nameDef; 110 } 111 112 protected NameDef getIdNameDef(ClassMapping classMapping, String linkend) { 113 return getIdNameDef((Class ) classMapping.getLinkedMO(), linkend); 114 } 115 116 118 123 public void setLogger(Logger logger) { 124 this.logger = logger; 125 } 126 127 132 public void setLoggerFactory(LoggerFactory loggerfactory) { 133 this.loggerFactory = loggerfactory; 134 } 135 136 public Logger getLogger() { 137 return logger; 138 } 139 140 public LoggerFactory getLoggerFactory() { 141 return loggerFactory; 142 } 143 } 144 | Popular Tags |