private TableDataModel toTableDataModel()

in fastmodel-transform/fastmodel-transform-api/src/main/java/com/aliyun/fastmodel/transform/api/domain/factory/impl/TableDomainFactory.java [56:121]


    private TableDataModel toTableDataModel(CreateTable createTableStatement) {
        TableDataModel dataModel = new TableDataModel();
        dataModel.setDatabase(createTableStatement.getBusinessUnit());
        dataModel.setTableCode(createTableStatement.getIdentifier());
        String aliasedNameValue = createTableStatement.getAliasedNameValue();
        dataModel.setTableName(aliasedNameValue);
        Comment comment = createTableStatement.getComment();
        dataModel.setComment(comment != null ? comment.getComment() : null);
        dataModel.setTblProperties(PropertyUtil.toMap(createTableStatement.getProperties()));
        dataModel.setTableType(createTableStatement.getTableType());
        List<ColumnDefinition> columnDefines = createTableStatement.getColumnDefines();
        Map<String, ColDataModel> map = new LinkedHashMap<>();
        List<ColDataModel> all = Lists.newArrayList();
        if (!createTableStatement.isColumnEmpty()) {
            List<ColDataModel> list = getColDataModels(columnDefines,
                map);
            all.addAll(list);
        }
        if (!createTableStatement.isPartitionEmpty()) {
            List<ColDataModel> list = getColDataModels(createTableStatement.getPartitionedBy().getColumnDefinitions(),
                map);
            list.stream().forEach(c -> {
                c.setIsPartitionKey(true);
            });
            all.addAll(list);
        }
        dataModel.setCols(all);
        List<BaseConstraint> constraintStatements = createTableStatement.getConstraintStatements();
        List<ConstraintDataModel> constraintDataModels = new ArrayList<>();
        if (createTableStatement.isConstraintEmpty()) {return dataModel;}
        for (BaseConstraint baseConstraint : constraintStatements) {
            if (baseConstraint instanceof PrimaryConstraint) {
                PrimaryConstraint primaryConstraintStatement
                    = (PrimaryConstraint)baseConstraint;
                List<String> colNames = primaryConstraintStatement.getColNames().stream().map(Identifier::getValue)
                    .collect(
                        Collectors.toList());
                for (String col : colNames) {
                    map.get(col).setPrimaryKey(true);
                }
            }
            if (baseConstraint instanceof DimConstraint) {
                DimConstraint dimConstraintStatement = (DimConstraint)baseConstraint;
                String identifier = createTableStatement.getIdentifier();
                List<Identifier> colNames = dimConstraintStatement.getColNames();
                QualifiedName right = dimConstraintStatement.getReferenceTable();
                List<Identifier> referenceColNames = dimConstraintStatement.getReferenceColNames();
                if (CollectionUtils.isNotEmpty(colNames)) {
                    List<ConstraintDataModel> collect = IntStream.range(0, colNames.size())
                        .mapToObj(x -> {
                            Identifier identifier1 = colNames.get(x);
                            Identifier identifier2 = referenceColNames.get(x);
                            return getConstraintDataModel(identifier, right,
                                identifier1, identifier2);
                        }).collect(Collectors.toList());
                    constraintDataModels.addAll(collect);
                } else {
                    ConstraintDataModel constraintDataModel = getConstraintDataModel(identifier,
                        dimConstraintStatement.getReferenceTable(), null, null);
                    constraintDataModels.add(constraintDataModel);
                }
            }
        }
        dataModel.setConstraints(constraintDataModels);
        return dataModel;
    }