public Node visitChangeAll()

in fastmodel-parser/src/main/java/com/aliyun/fastmodel/parser/visitor/TableColumnVisitor.java [83:139]


    public Node visitChangeAll(ChangeAllContext ctx) {
        AlterStatementSuffixRenameColContext renameColContext = ctx.alterStatementSuffixRenameCol();
        AlterColumnConstraintContext tree = renameColContext.alterColumnConstraint();
        BaseConstraint baseConstraint = visitIfPresent(tree, BaseConstraint.class).orElse(null);
        Boolean primary = isPrimary(baseConstraint);
        Boolean notNull = isNotNull(baseConstraint);
        if (BooleanUtils.isTrue(primary)) {
            notNull = true;
        }
        CommentContext comment = renameColContext.comment();
        AliasedName aliasedName = visitIfPresent(ctx.alterStatementSuffixRenameCol().alias(), AliasedName.class).orElse(
            null);
        Identifier visit = (Identifier)visit(renameColContext.newIdentifier);
        Comment visit1 = null;
        if (comment != null) {
            visit1 = (Comment)visit(comment);
        }
        BaseDataType baseDataType = (BaseDataType)visit(renameColContext.colType());
        List<Property> properties = ImmutableList.of();
        if (renameColContext.setProperties() != null) {
            properties = visit(renameColContext.setProperties().tableProperties().keyValueProperty(),
                Property.class);
        }
        CategoryContext category = renameColContext.category();
        ColumnCategory columnCategory = null;
        if (category != null) {
            columnCategory = ColumnCategory.getByCode(category.getText());
        }
        List<Identifier> indicators = ImmutableList.of();
        QualifiedName refDimensions = null;
        ReferencesObjectsContext referencesObjectsContext = renameColContext.referencesObjects();
        if (referencesObjectsContext != null) {
            ReferenceColumnListContext referenceColumnListContext = referencesObjectsContext.referenceColumnList();
            if (referenceColumnListContext != null) {
                indicators =
                    visit(referenceColumnListContext.columnParenthesesList().columnNameList().columnName(),
                        Identifier.class);
            } else {
                refDimensions = getQualifiedName(referencesObjectsContext.qualifiedName());
            }
        }
        return new ChangeCol(getQualifiedName(ctx.tableName()),
            (Identifier)visit(renameColContext.old),
            ColumnDefinition.builder()
                .colName(visit)
                .aliasedName(aliasedName)
                .primary(primary)
                .notNull(notNull)
                .category(columnCategory)
                .comment(visit1)
                .properties(properties)
                .dataType(baseDataType)
                .refIndicators(indicators)
                .refDimension(refDimensions)
                .build()
        );
    }