private DbOOAdt toAdt(String signature, ObjectType ot) throws DbException { DbOOAdt adt = types.get(signature); if (adt == null) { int idx = signature.lastIndexOf('.'); String packageName = (idx == -1) ? "" : signature.substring(0, idx); String classname = (idx == -1) ? signature : signature.substring(idx + 1); DbJVPackage pack = findPackageByName(packageName); adt = findClassByName(pack, classname); } return adt; } // end toAdt()
private DbJVPackage findPackageByName(String qualifiedPackageName) throws DbException { DbJVPackage pack = packages.get(qualifiedPackageName); if (pack == null) { DbOOAbsPackage parent = m_classModel; StringTokenizer st = new StringTokenizer(qualifiedPackageName, "."); while (st.hasMoreElements()) { String token = st.nextToken(); pack = findPackageByName(parent, token); if (pack == null) { pack = new DbJVPackage(parent); pack.setName(token); } // end if parent = pack; } // end while packages.put(qualifiedPackageName, pack); } // end if return pack; }
private Map<Byte, DbJVPrimitiveType> getJavaTypes() throws DbException { // if first call, build the map if (m_javaTypes == null) { m_javaTypes = new HashMap<Byte, DbJVPrimitiveType>(); DbRelationN relN = m_project.getComponents(); DbEnumeration enu = relN.elements(DbSMSBuiltInTypeNode.metaClass); while (enu.hasMoreElements()) { DbSMSBuiltInTypeNode typeNode = (DbSMSBuiltInTypeNode) enu.nextElement(); DbRelationN relN2 = typeNode.getComponents(); DbEnumeration enu2 = relN2.elements(DbSMSBuiltInTypePackage.metaClass); while (enu2.hasMoreElements()) { DbSMSBuiltInTypePackage pack = (DbSMSBuiltInTypePackage) enu2.nextElement(); DbSMSTargetSystem ts = pack.getTargetSystem(); if ("Java".equals(ts.getName())) { DbRelationN relN3 = pack.getComponents(); DbEnumeration enu3 = relN3.elements(DbJVPrimitiveType.metaClass); while (enu3.hasMoreElements()) { DbJVPrimitiveType type = (DbJVPrimitiveType) enu3.nextElement(); String name = type.getName(); if ("boolean".equals(name)) { m_javaTypes.put(Constants.T_BOOLEAN, type); } else if ("byte".equals(name)) { m_javaTypes.put(Constants.T_BYTE, type); } else if ("short".equals(name)) { m_javaTypes.put(Constants.T_SHORT, type); } else if ("char".equals(name)) { m_javaTypes.put(Constants.T_CHAR, type); } else if ("int".equals(name)) { m_javaTypes.put(Constants.T_INT, type); } else if ("long".equals(name)) { m_javaTypes.put(Constants.T_LONG, type); } else if ("double".equals(name)) { m_javaTypes.put(Constants.T_DOUBLE, type); } else if ("float".equals(name)) { m_javaTypes.put(Constants.T_FLOAT, type); } // end if } // end while enu3.close(); } // end if pack.getAlias(); } // end while enu2.close(); } // end while enu.close(); } // end if return m_javaTypes; }
private DbOOAdt findClassByName(DbJVPackage pack, String classname) throws DbException { DbJVClass foundClass = null; DbRelationN relN = (pack == null) ? m_classModel.getComponents() : pack.getComponents(); DbEnumeration enu = relN.elements(DbJVClass.metaClass); while (enu.hasMoreElements()) { DbJVClass claz = (DbJVClass) enu.nextElement(); String name = claz.getName(); if (classname.equals(name)) { foundClass = claz; break; } } // end while enu.close(); if (foundClass == null) { JVClassCategory catg = JVClassCategory.getInstance(JVClassCategory.CLASS); foundClass = (pack == null) ? new DbJVClass(m_classModel, catg) : new DbJVClass(pack, catg); foundClass.setName(classname); types.put(classname, foundClass); } return foundClass; } // end findClassByName()
private DbOOAdt toBasicAdt(BasicType basicType) throws DbException { Map<Byte, DbJVPrimitiveType> javaTypes = getJavaTypes(); DbJVPrimitiveType type = javaTypes.get(basicType.getType()); return type; }