Search in sources :

Example 66 with DBAttribute

use of com.cubrid.common.core.common.model.DBAttribute in project cubrid-manager by CUBRID.

the class SQLGenerateUtils method getSelectSQLWithLimit.

/**
	 * Get the select sql with limit 1 to 100
	 * 
	 * @param name
	 * @param allAttrList
	 * @return
	 */
public static String getSelectSQLWithLimit(String name, List<DBAttribute> allAttrList) {
    if (name == null || name.length() == 0 || allAttrList == null) {
        return "";
    }
    StringBuilder sql = new StringBuilder();
    sql.append("SELECT ");
    StringBuilder columns = new StringBuilder();
    for (DBAttribute attr : allAttrList) {
        //			} else {
        if (columns.length() > 0) {
            columns.append(", ");
        }
        columns.append(QuerySyntax.escapeKeyword(attr.getName()));
    //			}
    }
    if (columns.length() == 0) {
        sql.append("*");
    } else {
        sql.append(columns);
    }
    sql.append(" FROM ").append(QuerySyntax.escapeKeyword(name));
    sql.append(" WHERE ROWNUM BETWEEN 1 AND 100;");
    String res = sql.toString();
    try {
        SqlFormattingStrategy formatter = new SqlFormattingStrategy();
        return formatter.format(res);
    } catch (Exception ignored) {
        return res;
    }
}
Also used : DBAttribute(com.cubrid.common.core.common.model.DBAttribute) SqlFormattingStrategy(com.cubrid.common.ui.query.format.SqlFormattingStrategy)

Example 67 with DBAttribute

use of com.cubrid.common.core.common.model.DBAttribute in project cubrid-manager by CUBRID.

the class SQLGenerateUtils method getSelectSQLNoWhere.

/**
	 * Get the select sql no where
	 * 
	 * @param name
	 * @param allAttrList
	 * @return
	 */
public static String getSelectSQLNoWhere(String name, List<DBAttribute> allAttrList, boolean useSemicolon) {
    if (name == null || name.length() == 0 || allAttrList == null) {
        return "";
    }
    StringBuilder sql = new StringBuilder();
    sql.append("SELECT ");
    StringBuilder columns = new StringBuilder();
    for (DBAttribute attr : allAttrList) {
        //			} else {
        if (columns.length() > 0) {
            columns.append(", ");
        }
        columns.append(QuerySyntax.escapeKeyword(attr.getName()));
    //			}
    }
    if (columns.length() == 0) {
        sql.append("*");
    } else {
        sql.append(columns);
    }
    sql.append(" FROM ").append(QuerySyntax.escapeKeyword(name));
    if (useSemicolon) {
        sql.append(";");
    }
    String res = sql.toString();
    try {
        SqlFormattingStrategy formatter = new SqlFormattingStrategy();
        return formatter.format(res);
    } catch (Exception ignored) {
        return res;
    }
}
Also used : DBAttribute(com.cubrid.common.core.common.model.DBAttribute) SqlFormattingStrategy(com.cubrid.common.ui.query.format.SqlFormattingStrategy)

Example 68 with DBAttribute

use of com.cubrid.common.core.common.model.DBAttribute in project cubrid-manager by CUBRID.

the class SQLGenerateUtils method generateCloneTableSql.

public static String generateCloneTableSql(DefaultSchemaNode schemaNode, String newName) {
    CubridDatabase database = schemaNode.getDatabase();
    String tableName = schemaNode.getName();
    SchemaInfo schemaInfo = database.getDatabaseInfo().getSchemaInfo(tableName);
    if (schemaInfo == null) {
        CommonUITool.openErrorBox(Messages.bind(Messages.errGetSchemaInfo, tableName));
        LOGGER.debug("Can't get the SchemaInfo:" + tableName);
        return "";
    }
    int columnCounts = schemaInfo == null ? 0 : schemaInfo.getAttributes().size();
    StringBuilder columns = new StringBuilder();
    if (columnCounts > 0) {
        for (int i = 0; i < columnCounts; i++) {
            DBAttribute da = (DBAttribute) schemaInfo.getAttributes().get(i);
            if (columns.length() > 0) {
                columns.append(", ");
            }
            columns.append(QuerySyntax.escapeKeyword(da.getName()));
        }
    } else {
        columns.append("*");
    }
    StringBuffer sql = new StringBuffer();
    sql.append("CREATE TABLE ");
    sql.append(QuerySyntax.escapeKeyword(newName));
    sql.append(" AS ").append(StringUtil.NEWLINE).append("SELECT ");
    sql.append(columns);
    sql.append(StringUtil.NEWLINE).append("FROM ");
    sql.append(QuerySyntax.escapeKeyword(tableName));
    sql.append(";");
    return format(sql.toString());
}
Also used : DBAttribute(com.cubrid.common.core.common.model.DBAttribute) CubridDatabase(com.cubrid.common.ui.spi.model.CubridDatabase) SchemaInfo(com.cubrid.common.core.common.model.SchemaInfo)

Example 69 with DBAttribute

use of com.cubrid.common.core.common.model.DBAttribute in project cubrid-manager by CUBRID.

the class ModelUtil method getSchemaInfo.

/**
	 * Parse SchemaInfo message TreeNode and return SchemaInfo Object
	 * 
	 * @param classinfo TreeNode
	 * @return SchemaInfo
	 */
public static SchemaInfo getSchemaInfo(TreeNode classinfo, DatabaseInfo dbInfo) {
    SchemaInfo schema = new SchemaInfo();
    SocketTask.setFieldValue(classinfo, schema);
    /*Process the type for CMS 9.0, If the CMS fixed the bug. It can be remove.*/
    if (CompatibleUtil.isSupportEnumVersion(dbInfo)) {
        List<String> enumColumnList = new ArrayList<String>();
        for (DBAttribute attribute : schema.getAttributes()) {
            String type = attribute.getType();
            type = processFiledTypeForCMS9(type);
            if (DataType.DATATYPE_ENUM.equalsIgnoreCase(type)) {
                enumColumnList.add(attribute.getName());
            }
            attribute.setType(type);
        }
        if (enumColumnList.size() > 0) {
            Connection connection = null;
            Statement stmt = null;
            ResultSet rs = null;
            try {
                connection = JDBCConnectionManager.getConnection(dbInfo, true);
                String escapedTableName = QuerySyntax.escapeKeyword(schema.getClassname());
                StringBuilder sb = new StringBuilder();
                sb.append("SHOW COLUMNS FROM ").append(escapedTableName).append(" WHERE FIELD IN (");
                stmt = connection.createStatement();
                for (int i = 0; i < enumColumnList.size(); i++) {
                    sb.append("'").append(enumColumnList.get(i)).append("'");
                    if (i + 1 < enumColumnList.size()) {
                        sb.append(",");
                    }
                }
                sb.append(");");
                rs = stmt.executeQuery(sb.toString());
                while (rs.next()) {
                    String name = rs.getString("Field");
                    String type = rs.getString("Type");
                    DBAttribute attr = schema.getDBAttributeByName(name, false);
                    attr.setEnumeration(StringUtil.getEnumeration(type));
                }
            } catch (Exception e) {
                LOGGER.error("", e);
            } finally {
                QueryUtil.freeQuery(connection, stmt, rs);
            }
        }
    }
    return schema;
}
Also used : DBAttribute(com.cubrid.common.core.common.model.DBAttribute) Statement(java.sql.Statement) ArrayList(java.util.ArrayList) Connection(java.sql.Connection) ResultSet(java.sql.ResultSet) SchemaInfo(com.cubrid.common.core.common.model.SchemaInfo)

Example 70 with DBAttribute

use of com.cubrid.common.core.common.model.DBAttribute in project cubrid-manager by CUBRID.

the class ExportSchemaTask method execute.

public void execute() {
    // FIXME logic code move to core module
    entityMap.clear();
    relationshipMap.clear();
    entityAttrMap.clear();
    ERwin4 root = new ERwin4();
    Model model = new Model();
    // DEFUALT database type "ODBC" "194"
    model.setTargetServer("194");
    model.setDbmsVersion("3");
    model.setModelProps(new Model.ModelProps());
    model.getModelProps().setDbmsVersion(new DBMSVersion());
    model.getModelProps().getDbmsVersion().setValue("3");
    model.getModelProps().setTargetServer(new TargetServer());
    model.getModelProps().getTargetServer().setValue("194");
    model.setId(getUUID());
    root.setModel(model);
    RelationshipGroups relationShipGroups = new RelationshipGroups();
    model.setRelationshipGroups(relationShipGroups);
    model.setDefaultValueGroups(new DefaultValueGroups());
    EntityGroups groups = new EntityGroups();
    model.setEntityGroups(groups);
    for (Entry<String, SchemaInfo> entry : allSchemaInfos.entrySet()) {
        String physicalTableName = entry.getKey();
        String logicalTableName = physicalTableName;
        if (tablePLMap != null) {
            String logical = tablePLMap.get(physicalTableName);
            logicalTableName = StringUtil.isEmpty(logical) ? physicalTableName : logical;
        }
        SchemaInfo schemaInfo = entry.getValue();
        if (schemaInfo.isSystemClass()) {
            continue;
        }
        Entity entity = new Entity();
        groups.getEntity().add(entity);
        entity.setId(getUUID());
        entity.setName(logicalTableName);
        entityMap.put(physicalTableName, entity);
        entityAttrMap.put(physicalTableName, new HashMap<String, Attribute>());
        EntityPropsList entityPropsList = new EntityPropsList();
        entity.setEntityProps(entityPropsList);
        entityPropsList.setPhysicalName(new EntityPropsList.PhysicalName());
        entityPropsList.getPhysicalName().setValue(physicalTableName);
        Type type = new Type();
        if (schemaInfo.getVirtual().equals(ClassType.NORMAL.getText())) {
            type.setValue(ERXmlModelConstant.ENTITYTYPE_TABLE_STR);
        } else {
            type.setValue(ERXmlModelConstant.ENTITYTYPE_VIEW_STR);
        }
        entityPropsList.setType(type);
        Name nameEntityProps = new Name();
        nameEntityProps.setValue(logicalTableName);
        entityPropsList.setName(nameEntityProps);
        List<DBAttribute> attributes = schemaInfo.getAttributes();
        AttributeGroups attributeGroups = new AttributeGroups();
        entity.setAttributeGroups(attributeGroups);
        Map<String, Attribute> schemaAttrMap = new HashMap<String, Attribute>();
        int attrOrder = 1;
        for (DBAttribute dbAttr : attributes) {
            Attribute attribute = new Attribute();
            attributeGroups.getAttribute().add(attribute);
            attribute.setId(getUUID());
            String logicalAttrName = getLogicalAttrName(physicalTableName, dbAttr.getName());
            if (StringUtil.isEmpty(logicalAttrName)) {
                logicalAttrName = dbAttr.getName();
            }
            attribute.setName(logicalAttrName);
            schemaAttrMap.put(dbAttr.getName(), attribute);
            AttributePropsList attributePropsList = new AttributePropsList();
            attribute.setAttributeProps(attributePropsList);
            attributePropsList.setPhysicalName(new PhysicalName());
            attributePropsList.getPhysicalName().setValue(dbAttr.getName());
            com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.Type attrType = new com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.Type();
            attributePropsList.setType(attrType);
            if (dbAttr.isNotNull() && dbAttr.isUnique()) {
                attrType.setValue("" + ERXmlModelConstant.ATTRIBUTE_TYPE_PK);
            } else {
                attrType.setValue("100");
            }
            Datatype dataType = new Datatype();
            String typeValue = dbAttr.getType();
            if (!StringUtil.isEmpty(dbAttr.getEnumeration())) {
                typeValue += dbAttr.getEnumeration();
            }
            dataType.setValue(typeValue);
            attributePropsList.setDataType(dataType);
            com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.Name propName = new com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.Name();
            propName.setValue(logicalAttrName);
            attributePropsList.setName(propName);
            LogicalDataType logicalDataType = new LogicalDataType();
            String logicalAttrType = getLogicalAttrType(physicalTableName, dbAttr.getName());
            if (StringUtil.isEmpty(logicalAttrType)) {
                logicalAttrType = typeValue;
            }
            logicalDataType.setValue(logicalAttrType);
            attributePropsList.setLogicalDataType(logicalDataType);
            if (dbAttr.isNotNull()) {
                NullOption nullOption = new NullOption();
                nullOption.setValue("" + 1);
                attributePropsList.setNullOption(nullOption);
            }
            Order order = new Order();
            attributePropsList.setOrder(order);
            order.setValue("" + attrOrder++);
            if (dbAttr.getDefault() != null) {
                String defaultNameStr = handleSpace(dbAttr.getDefault());
                String defaultName = "default_" + defaultNameStr;
                Default defaultValue = null;
                attributePropsList.setDefaultValue(new AttributePropsList.DefaultValue());
                if (defaultNodeMap.containsKey(defaultName)) {
                    defaultValue = defaultNodeMap.get(defaultName);
                    attributePropsList.getDefaultValue().setValue(defaultValue.getId());
                    continue;
                }
                String defaultId = getUUID();
                DefaultValueGroups defaultValueGroups = model.getDefaultValueGroups();
                attributePropsList.getDefaultValue().setValue(defaultId);
                defaultValue = new Default();
                defaultValue.setId(defaultId);
                defaultValue.setName("default_" + defaultNameStr);
                defaultValueGroups.getDefault().add(defaultValue);
                defaultNodeMap.put(defaultValue.getName(), defaultValue);
                DefaultPropsList defaultPropsList = new DefaultPropsList();
                defaultValue.setDefaultProps(defaultPropsList);
                defaultPropsList.setName(new DefaultPropsList.Name());
                defaultPropsList.getName().setValue(defaultValue.getName());
                defaultPropsList.setServerValue(new ServerValue());
                defaultPropsList.getServerValue().setValue(dbAttr.getDefault());
                defaultPropsList.setLogicalDefaultValue(new LogicalDefaultValue());
                defaultPropsList.getLogicalDefaultValue().setValue(dbAttr.getDefault());
            }
        }
        entityAttrMap.put(physicalTableName, schemaAttrMap);
    }
    List<String> relIds = new ArrayList<String>();
    for (Entry<String, SchemaInfo> entry : allSchemaInfos.entrySet()) {
        Entity entity = entityMap.get(entry.getKey());
        if (entity == null)
            continue;
        SchemaInfo schemaInfo = entry.getValue();
        Map<String, Attribute> schemaAttrMap = entityAttrMap.get(schemaInfo.getClassname());
        KeyGroupGroups keyGroups = new KeyGroupGroups();
        entity.setKeyGroupGroups(keyGroups);
        // counter for index
        int fk = 1;
        int idx = 1;
        int uidx = 1;
        List<Constraint> constraints = schemaInfo.getConstraints();
        for (Constraint constraint : constraints) {
            if (!isValid(constraint)) {
                continue;
            }
            KeyGroup keyGroup = new KeyGroup();
            keyGroups.getKeyGroup().add(keyGroup);
            keyGroup.setId(getUUID());
            keyGroup.setName(constraint.getName());
            KeyGroupPropsList keyGroupPropsList = new KeyGroupPropsList();
            keyGroup.setKeyGroupProps(keyGroupPropsList);
            KeyGroupMemberGroups keyGroupMemberGroups = new KeyGroupMemberGroups();
            keyGroup.setKeyGroupMemberGroups(keyGroupMemberGroups);
            KeyGroupType keyGrouptype = new KeyGroupType();
            keyGroupPropsList.setKeyGroupType(keyGrouptype);
            if (constraint.getType().equals(ConstraintType.PRIMARYKEY.getText())) {
                keyGrouptype.setValue("PK");
                List<String> keyAttr = constraint.getAttributes();
                int order = 1;
                for (String keyName : keyAttr) {
                    KeyGroupMember keyGroupMember = new KeyGroupMember();
                    keyGroupMemberGroups.getKeyGroupMember().add(keyGroupMember);
                    keyGroupMember.setId(getUUID());
                    keyGroupMember.setName("" + order);
                    KeyGroupMemberPropsList propList = new KeyGroupMemberPropsList();
                    keyGroupMember.setKeyGroupMemberProps(propList);
                    KeyGroupPosition position = new KeyGroupPosition();
                    propList.setKeyGroupPosition(position);
                    position.setValue("" + order++);
                    KeyGroupMemberColumn column = new KeyGroupMemberColumn();
                    Attribute attrTemp = schemaAttrMap.get(keyName);
                    column.setValue(attrTemp.getId());
                    propList.setKeyGroupMemberColumn(column);
                }
            } else if (constraint.getType().equals(ConstraintType.FOREIGNKEY.getText())) {
                keyGrouptype.setValue("IF" + fk++);
                String relId = getUUID();
                keyGroupPropsList.setKeyGroupRelationPointer(new KeyGroupRelationPointer());
                keyGroupPropsList.getKeyGroupRelationPointer().setValue(relId);
                relIds.add(relId);
                List<String> keyAttr = constraint.getAttributes();
                String inherit = constraint.getReferencedTable();
                Entity pEntity = entityMap.get(inherit);
                if (pEntity == null) {
                    continue;
                }
                Map<String, Attribute> tempAttrMap = entityAttrMap.get(schemaInfo.getClassname());
                Map<String, Attribute> parentAttrMap = entityAttrMap.get(inherit);
                Relationship relationShip = new Relationship();
                relationShip.setId(relId);
                relationshipMap.put(relId, relationShip);
                relationShip.setName("R/" + fk);
                model.getRelationshipGroups().getRelationship().add(relationShip);
                RelationshipPropsList relationShipPropsList = new RelationshipPropsList();
                relationShip.setRelationshipProps(relationShipPropsList);
                relationShipPropsList.setName(new RelationshipPropsList.Name());
                relationShipPropsList.getName().setValue(relationShip.getName());
                // type == 7 : non-identify fk
                relationShipPropsList.setType(new RelationshipPropsList.Type());
                relationShipPropsList.getType().setValue("2");
                relationShipPropsList.setRelationshipNoNulls(new RelationshipNoNulls());
                relationShipPropsList.getRelationshipNoNulls().setValue("101");
                relationShipPropsList.setRelationshipSequence(new RelationshipSequence());
                relationShipPropsList.getRelationshipSequence().setValue("1");
                relationShipPropsList.setRelationshipParentInsertRule(new RelationshipParentInsertRule());
                relationShipPropsList.getRelationshipParentInsertRule().setValue("0");
                relationShipPropsList.setRelationshipParentUpdateRule(new RelationshipParentUpdateRule());
                relationShipPropsList.setRelationshipParentDeleteRule(new RelationshipParentDeleteRule());
                relationShipPropsList.setRelationshipChildInsertRule(new RelationshipChildInsertRule());
                relationShipPropsList.getRelationshipChildInsertRule().setValue("0");
                relationShipPropsList.setRelationshipChildUpdateRule(new RelationshipChildUpdateRule());
                relationShipPropsList.getRelationshipChildUpdateRule().setValue("0");
                relationShipPropsList.setRelationshipChildDeleteRule(new RelationshipChildDeleteRule());
                relationShipPropsList.getRelationshipChildDeleteRule().setValue("0");
                List<String> rules = constraint.getRules();
                for (String rule : rules) {
                    if (rule.indexOf("ON UPDATE") != -1) {
                        int tmp = rule.replace("ON UPDATE ", "").hashCode();
                        RelationshipParentUpdateRule updateRule = relationShipPropsList.getRelationshipParentUpdateRule();
                        if (tmp == "CASCADE".hashCode()) {
                            updateRule.setValue("10001");
                        } else if (tmp == "NO ACTION".hashCode()) {
                            updateRule.setValue("9998");
                        } else if (tmp == "RESTRICT".hashCode()) {
                            updateRule.setValue("10000");
                        }
                    } else if (rule.indexOf("ON DELETE") != -1) {
                        int tmp = rule.replace("ON DELETE ", "").hashCode();
                        RelationshipParentDeleteRule deleteRule = relationShipPropsList.getRelationshipParentDeleteRule();
                        if (tmp == "CASCADE".hashCode()) {
                            deleteRule.setValue("10005");
                        } else if (tmp == "NO ACTION".hashCode()) {
                            deleteRule.setValue("9999");
                        } else if (tmp == "RESTRICT".hashCode()) {
                            deleteRule.setValue("10004");
                        }
                    }
                }
                relationShipPropsList.setRelationshipParentEntity(new RelationshipParentEntity());
                relationShipPropsList.getRelationshipParentEntity().setValue(pEntity.getId());
                relationShipPropsList.setRelationshipChildEntity(new RelationshipChildEntity());
                relationShipPropsList.getRelationshipChildEntity().setValue(entityMap.get(schemaInfo.getClassname()).getId());
                LinkedList<String> pkAttr = new LinkedList<String>();
                SchemaInfo parentTable = allSchemaInfos.get(inherit);
                for (Constraint con : parentTable.getConstraints()) {
                    if (con.getType().equals(ConstraintType.PRIMARYKEY.getText())) {
                        pkAttr.addAll(con.getAttributes());
                        break;
                    }
                }
                int order = 1;
                for (String keyName : keyAttr) {
                    KeyGroupMember keyGroupMember = new KeyGroupMember();
                    keyGroupMemberGroups.getKeyGroupMember().add(keyGroupMember);
                    keyGroupMember.setId(getUUID());
                    keyGroupMember.setName("" + order);
                    KeyGroupMemberPropsList propList = new KeyGroupMemberPropsList();
                    keyGroupMember.setKeyGroupMemberProps(propList);
                    KeyGroupPosition position = new KeyGroupPosition();
                    propList.setKeyGroupPosition(position);
                    position.setValue("" + order++);
                    KeyGroupMemberColumn column = new KeyGroupMemberColumn();
                    String parentPkAttr = pkAttr.remove();
                    Attribute attrTemp = tempAttrMap.get(keyName);
                    column.setValue(attrTemp.getId());
                    propList.setKeyGroupMemberColumn(column);
                    // Attribute parent part
                    Attribute schemaAttr = schemaAttrMap.get(keyName);
                    AttributePropsList schemaPropList = schemaAttr.getAttributeProps();
                    Attribute parentPkAttrNode = parentAttrMap.get(parentPkAttr);
                    ParentAttribute pAttribute = new ParentAttribute();
                    pAttribute.setValue(parentPkAttrNode.getId());
                    schemaPropList.setParentAttribute(pAttribute);
                    schemaAttr.getAttributeProps().setParentRelationship(new ParentRelationship());
                    schemaAttr.getAttributeProps().getParentRelationship().setValue(relId);
                }
            } else if (constraint.getType().equals(ConstraintType.INDEX.getText()) || constraint.getType().equals(ConstraintType.REVERSEINDEX.getText())) {
                keyGrouptype.setValue("IE" + idx++);
                List<String> keyAttr = constraint.getAttributes();
                int order = 1;
                for (String keyName : keyAttr) {
                    KeyGroupMember keyGroupMember = new KeyGroupMember();
                    keyGroupMemberGroups.getKeyGroupMember().add(keyGroupMember);
                    keyGroupMember.setId(getUUID());
                    keyGroupMember.setName("" + order);
                    KeyGroupMemberPropsList propList = new KeyGroupMemberPropsList();
                    keyGroupMember.setKeyGroupMemberProps(propList);
                    for (String rule : constraint.getRules()) {
                        if (rule.toLowerCase().startsWith(keyName.toLowerCase())) {
                            if (rule.toLowerCase().indexOf(" desc") != -1) {
                                propList.setKeyGroupSortOrder(new KeyGroupSortOrder());
                                propList.getKeyGroupSortOrder().setValue("DESC");
                            }
                        }
                    }
                    KeyGroupPosition position = new KeyGroupPosition();
                    propList.setKeyGroupPosition(position);
                    position.setValue("" + order++);
                    KeyGroupMemberColumn column = new KeyGroupMemberColumn();
                    Attribute attrTemp = schemaAttrMap.get(keyName);
                    column.setValue(attrTemp.getId());
                    propList.setKeyGroupMemberColumn(column);
                }
            } else if (constraint.getType().equals(ConstraintType.UNIQUE.getText()) || constraint.getType().equals(ConstraintType.REVERSEUNIQUE.getText())) {
                keyGrouptype.setValue("AK" + uidx++);
                List<String> keyAttr = constraint.getAttributes();
                int order = 1;
                for (String keyName : keyAttr) {
                    KeyGroupMember keyGroupMember = new KeyGroupMember();
                    keyGroupMemberGroups.getKeyGroupMember().add(keyGroupMember);
                    keyGroupMember.setId(getUUID());
                    keyGroupMember.setName("" + order);
                    KeyGroupMemberPropsList propList = new KeyGroupMemberPropsList();
                    keyGroupMember.setKeyGroupMemberProps(propList);
                    KeyGroupPosition position = new KeyGroupPosition();
                    propList.setKeyGroupPosition(position);
                    position.setValue("" + order++);
                    KeyGroupMemberColumn column = new KeyGroupMemberColumn();
                    Attribute attrTemp = schemaAttrMap.get(keyName);
                    column.setValue(attrTemp.getId());
                    propList.setKeyGroupMemberColumn(column);
                    KeyGroupSortOrder sortOrder = new KeyGroupSortOrder();
                    propList.setKeyGroupSortOrder(sortOrder);
                    for (String rule : constraint.getRules()) {
                        if (rule.toLowerCase().startsWith(keyName.toLowerCase())) {
                            String orderStr = rule.replace(keyName.toLowerCase(), "").replaceAll(" ", "");
                            sortOrder.setValue(orderStr);
                        }
                    }
                }
            }
        }
    }
    setDrawData(model);
    FileOutputStream fout = null;
    try {
        File f = new File(filename);
        if (!f.exists()) {
            try {
                f.createNewFile();
            } catch (IOException e) {
                CommonUITool.openErrorBox(Messages.bind(Messages.errCreateFile, filename));
                return;
            }
        }
        fout = new FileOutputStream(f);
        marshaller.marshal(root, fout);
        fout.close();
    } catch (Exception e) {
        LOGGER.error(e.getMessage(), e);
        isSuccess = false;
    } finally {
        try {
            if (fout != null) {
                fout.flush();
                fout.close();
            }
        } catch (IOException e) {
            LOGGER.error(e.getMessage(), e);
        }
    }
    isSuccess = true;
}
Also used : RelationshipParentEntity(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList.RelationshipParentEntity) RelationshipChildEntity(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList.RelationshipChildEntity) ReferencedEntity(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.SubjectAreaProps.ReferencedEntity) DrawingObjectEntity(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.DrawingObjectEntity) Entity(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.Entity) KeyGroupMember(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroupMember) RelationshipChildInsertRule(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList.RelationshipChildInsertRule) HashMap(java.util.HashMap) Constraint(com.cubrid.common.core.common.model.Constraint) ArrayList(java.util.ArrayList) NullOption(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.NullOption) LogicalDataType(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.LogicalDataType) Name(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.EntityPropsList.Name) PhysicalName(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.PhysicalName) Datatype(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.Datatype) AttributeGroups(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.Entity.AttributeGroups) RelationshipChildEntity(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList.RelationshipChildEntity) LogicalDefaultValue(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.DefaultPropsList.LogicalDefaultValue) KeyGroupMemberPropsList(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroupMemberPropsList) RelationshipPropsList(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList) AttributePropsList(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList) List(java.util.List) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList) KeyGroupPropsList(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroupPropsList) EntityPropsList(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.EntityPropsList) DefaultPropsList(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.DefaultPropsList) SchemaInfo(com.cubrid.common.core.common.model.SchemaInfo) KeyGroupSortOrder(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroupMemberPropsList.KeyGroupSortOrder) Order(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.Order) KeyGroupMemberColumn(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroupMemberPropsList.KeyGroupMemberColumn) KeyGroupPropsList(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroupPropsList) LinkedList(java.util.LinkedList) RelationshipSequence(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList.RelationshipSequence) KeyGroupMemberGroups(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroup.KeyGroupMemberGroups) RelationshipParentUpdateRule(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList.RelationshipParentUpdateRule) FileOutputStream(java.io.FileOutputStream) RelationshipChildDeleteRule(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList.RelationshipChildDeleteRule) DrawingObjectRelationshipGroups(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.StoredDisplay.DrawingObjectRelationshipGroups) RelationshipGroups(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.Model.RelationshipGroups) Map(java.util.Map) HashMap(java.util.HashMap) ParentAttribute(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.ParentAttribute) File(java.io.File) RelationshipNoNulls(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList.RelationshipNoNulls) AttributePropsList(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList) PhysicalName(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.PhysicalName) KeyGroupGroups(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.Entity.KeyGroupGroups) Attribute(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.Attribute) DBAttribute(com.cubrid.common.core.common.model.DBAttribute) ParentAttribute(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.ParentAttribute) RelationshipChildUpdateRule(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList.RelationshipChildUpdateRule) DrawingObjectEntityGroups(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.StoredDisplay.DrawingObjectEntityGroups) EntityGroups(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.Model.EntityGroups) KeyGroupMemberPropsList(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroupMemberPropsList) KeyGroupType(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroupPropsList.KeyGroupType) DefaultValueGroups(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.Model.DefaultValueGroups) DBAttribute(com.cubrid.common.core.common.model.DBAttribute) DefaultPropsList(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.DefaultPropsList) KeyGroupSortOrder(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroupMemberPropsList.KeyGroupSortOrder) RelationshipParentInsertRule(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList.RelationshipParentInsertRule) KeyGroupPosition(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroupMemberPropsList.KeyGroupPosition) ServerValue(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.DefaultPropsList.ServerValue) KeyGroup(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroup) DBMSVersion(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.DBMSVersion) TargetServer(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.TargetServer) RelationshipParentDeleteRule(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList.RelationshipParentDeleteRule) IOException(java.io.IOException) Default(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.Default) Constraint(com.cubrid.common.core.common.model.Constraint) JAXBException(javax.xml.bind.JAXBException) IOException(java.io.IOException) KeyGroupRelationPointer(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroupPropsList.KeyGroupRelationPointer) RelationshipPropsList(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList) ClassType(com.cubrid.cubridmanager.core.utils.ModelUtil.ClassType) ConstraintType(com.cubrid.common.core.common.model.Constraint.ConstraintType) LogicalDataType(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.LogicalDataType) KeyGroupType(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.KeyGroupPropsList.KeyGroupType) Type(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.EntityPropsList.Type) RelationshipParentEntity(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.RelationshipPropsList.RelationshipParentEntity) ParentRelationship(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.ParentRelationship) ParentRelationship(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.AttributePropsList.ParentRelationship) Relationship(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.Relationship) Model(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.Model) ERwin4(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.ERwin4) EntityPropsList(com.cubrid.common.ui.cubrid.database.erwin.xmlmodel.EntityPropsList)

Aggregations

DBAttribute (com.cubrid.common.core.common.model.DBAttribute)130 SchemaInfo (com.cubrid.common.core.common.model.SchemaInfo)57 Constraint (com.cubrid.common.core.common.model.Constraint)53 ArrayList (java.util.ArrayList)46 HashMap (java.util.HashMap)16 List (java.util.List)15 SerialInfo (com.cubrid.common.core.common.model.SerialInfo)14 TableItem (org.eclipse.swt.widgets.TableItem)13 ERTableColumn (com.cubrid.common.ui.er.model.ERTableColumn)11 CubridDatabase (com.cubrid.common.ui.spi.model.CubridDatabase)11 GetAllAttrTask (com.cubrid.cubridmanager.core.cubrid.table.task.GetAllAttrTask)10 SchemaComment (com.cubrid.common.core.schemacomment.model.SchemaComment)8 Map (java.util.Map)8 Point (org.eclipse.swt.graphics.Point)8 DatabaseInfo (com.cubrid.cubridmanager.core.cubrid.database.model.DatabaseInfo)7 SQLException (java.sql.SQLException)7 PreparedStatement (java.sql.PreparedStatement)6 DBResolution (com.cubrid.common.core.common.model.DBResolution)5 PartitionInfo (com.cubrid.common.core.common.model.PartitionInfo)5 SqlFormattingStrategy (com.cubrid.common.ui.query.format.SqlFormattingStrategy)5