private void propagateCommonItemValues(DbORCommonItemModel model, int options) throws DbException { DbRelationN relN = model.getComponents(); DbEnumeration dbEnum = relN.elements(DbORCommonItem.metaClass); while (dbEnum.hasMoreElements()) { DbORCommonItem item = (DbORCommonItem) dbEnum.nextElement(); propagateCommonItemValues(item, options); } // end while dbEnum.close(); } // end propagateCommonItemValues()
// find, if any, the column of 'table' whose name is 'columnName' private DbORColumn findColumn(DbORTable table, String columnName) throws DbException { DbORColumn namedColumn = null; DbRelationN relN = table.getComponents(); DbEnumeration enu = relN.elements(DbORColumn.metaClass); while (enu.hasMoreElements()) { DbORColumn c = (DbORColumn) enu.nextElement(); if (columnName.equals(c.getName())) { namedColumn = c; break; } } // end while enu.close(); return namedColumn; }
private DbJVPackage findPackageByName(DbOOAbsPackage parent, String packageName) throws DbException { DbJVPackage foundPackage = null; DbRelationN relN = parent.getComponents(); DbEnumeration enu = relN.elements(DbJVPackage.metaClass); while (enu.hasMoreElements()) { DbJVPackage pack = (DbJVPackage) enu.nextElement(); String name = pack.getName(); if (packageName.equals(name)) { foundPackage = pack; break; } } // end while enu.close(); return foundPackage; }
private DbORTable findParentTable(DbORTable t1) throws DbException { DbORTable parent = null; DbRelationN relN = t1.getAssociationEnds(); DbEnumeration enu = relN.elements(DbORAssociationEnd.metaClass); while (enu.hasMoreElements()) { DbORAssociationEnd end = (DbORAssociationEnd) enu.nextElement(); int mult = end.getMultiplicity().getValue(); if (mult == SMSMultiplicity.EXACTLY_ONE) { DbORAssociationEnd oppEnd = end.getOppositeEnd(); DbORAbsTable t = oppEnd.getClassifier(); if (t instanceof DbORTable) { parent = (DbORTable) t; break; } } // end if } // end while enu.close(); return parent; }
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 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 void propagateCommonItemValues(DbORCommonItem item, int options) throws DbException { // get mandatory properties DbORTypeClassifier type = item.getType(); Integer len = item.getLength(); Integer dec = item.getNbDecimal(); boolean isNull = item.getNull(); // get optional properties String name = item.getName(); String physicalName = item.getPhysicalName(); String alias = item.getAlias(); String desc = item.getDescription(); DbSMSStereotype stereotype = item.getUmlStereotype(); // for each column DbRelationN relN = item.getColumns(); DbEnumeration dbEnum = relN.elements(DbORColumn.metaClass); while (dbEnum.hasMoreElements()) { m_changesmade = true; // set mandatory properties DbORColumn column = (DbORColumn) dbEnum.nextElement(); column.setType(type); column.setLength(len); column.setNbDecimal(dec); column.setNull(Boolean.valueOf(isNull)); // set optional properties if ((options & NAME) != 0) { column.setName(name); } if ((options & PHYSICAL_NAME) != 0) { column.setPhysicalName(physicalName); } if ((options & ALIAS) != 0) { column.setAlias(alias); } if ((options & DESCRIPTION) != 0) { column.setDescription(desc); } if ((options & STEREOTYPE) != 0) { column.setUmlStereotype(stereotype); } } // end while dbEnum.close(); // get object properties DbOOAdt ooType = item.getOoType(); String typeUse = item.getTypeUse(); OOTypeUseStyle style = item.getTypeUseStyle(); JVVisibility visib = (JVVisibility) item.getVisibility(); boolean isStatic = item.isStatic(); boolean isFinal = item.isFinal(); boolean isTransient = item.isTransient(); boolean isVolatile = item.isVolatile(); // for each field relN = item.getFields(); dbEnum = relN.elements(DbJVDataMember.metaClass); while (dbEnum.hasMoreElements()) { m_changesmade = true; // set mandatory oo properties DbJVDataMember field = (DbJVDataMember) dbEnum.nextElement(); field.setType(ooType); field.setTypeUse(typeUse); field.setTypeUseStyle(style); field.setVisibility(visib); field.setStatic(Boolean.valueOf(isStatic)); field.setFinal(new Boolean(isFinal)); field.setTransient(new Boolean(isTransient)); field.setVolatile(new Boolean(isVolatile)); // set optional properties if ((options & NAME) != 0) { field.setName(name); } if ((options & ALIAS) != 0) { field.setAlias(alias); } if ((options & DESCRIPTION) != 0) { field.setDescription(desc); } if ((options & STEREOTYPE) != 0) { field.setUmlStereotype(stereotype); } } // end while dbEnum.close(); } // end propagateCommonItemValues()
// add childrenMetaClass to filter only children of that class // if null, scan each child protected boolean expandMetaRelationN( Writer output, DbObject object, MetaRelationship metaRelation, boolean state[], MetaClass childrenMetaClass, RuleOptions options) throws DbException, IOException, RuleException { boolean expanded = false; DbEnumeration dbEnumChildren = null; DbRelationN relationN = (DbRelationN) object.get(metaRelation); if (childrenMetaClass == null) { dbEnumChildren = relationN.elements(); } else { dbEnumChildren = relationN.elements(childrenMetaClass); } // a first pass to find out the number of children int nbChildren = 0; try { while (dbEnumChildren.hasMoreElements()) { dbEnumChildren.nextElement(); nbChildren++; // Cancel everything if the user has decided to stop the // operation if (options != null) { Controller controller = options.m_controller; if (controller != null) { boolean can_continue = controller.checkPoint(); if (!can_continue) { throw new RuleException(controller.getAbortedString()); } } } // end if } // end while } finally { dbEnumChildren.close(); } // cannot rollback to the first element, so recreate the enumeration if (childrenMetaClass == null) { dbEnumChildren = relationN.elements(); } else { dbEnumChildren = relationN.elements(childrenMetaClass); } try { while (dbEnumChildren.hasMoreElements()) { DbObject child = (DbObject) dbEnumChildren.nextElement(); MetaClass metaClass = child.getMetaClass(); String className = metaClass.getGUIName(); boolean excluded = false; // check if child's class is excluded if (options != null) { excluded = options.isExcluded(className); // if not, check if parent's connection is excluded if (!excluded) { metaClass = object.getMetaClass(); String parentClassName = metaClass.getGUIName(); String connectionName = parentClassName + "." + metaRelation.getGUIName(); excluded = options.isExcluded(connectionName); } // end if } // end if if (!excluded) { expanded |= expandChild(output, object, child, nbChildren, state, options); } // end if } // end while } finally { dbEnumChildren.close(); } boolean atLeastOneChildPrinted = state[1]; if ((atLeastOneChildPrinted) && (suffixModifier != null)) { expanded |= suffixModifier.expand(output, object, options); } else if ((!atLeastOneChildPrinted) && (nullModifier != null)) { expanded |= nullModifier.expand(output, object, options); } return expanded; } // end expandMetaRelationN