private DbJVClass importClass(JavaClass claz, Controller controller) throws DbException { String packName = claz.getPackageName(); String qualifiedName = claz.getClassName(); int idx = qualifiedName.lastIndexOf('.'); String classname = qualifiedName.substring(idx + 1); DbJVClass dbClaz = null; try { if (m_classModel != null) { DbJVPackage pack = findPackageByName(packName); // create class or interface int value = claz.isInterface() ? JVClassCategory.INTERFACE : JVClassCategory.CLASS; JVClassCategory catg = JVClassCategory.getInstance(value); dbClaz = (pack == null) ? new DbJVClass(this.m_classModel, catg) : new DbJVClass(pack, catg); dbClaz.setName(classname); // set class modifiers dbClaz.setAbstract(claz.isAbstract()); dbClaz.setFinal(claz.isFinal()); dbClaz.setStatic(claz.isStatic()); dbClaz.setStrictfp(claz.isStrictfp()); dbClaz.setVisibility(toVisibility(claz)); // create inheritances importInheritances(dbClaz, claz); // create fields if (m_params.createFields) { Field[] fields = claz.getFields(); for (Field field : fields) { importField(dbClaz, field); } } // create methods if (m_params.createMethods) { Method[] methods = claz.getMethods(); for (Method method : methods) { importMethod(dbClaz, method); } } // keep user informed of progression String pattern = LocaleMgr.misc.getString("0SuccessfullyCreated"); String msg = MessageFormat.format(pattern, qualifiedName); controller.println(msg); } // end if } catch (DbException ex) { controller.println(ex.toString()); } // end try return dbClaz; } // end importClass()
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()