private SubPartitionClient toSubPartitionClient()

in fastmodel-transform/fastmodel-transform-adbpg/src/main/java/com/aliyun/fastmodel/transform/adbpg/client/converter/AdbPostgreSQLClientConverter.java [509:572]


    private SubPartitionClient toSubPartitionClient(BaseSubPartition subPartition) {
        if (subPartition instanceof SubListPartition) {
            SubListPartition subListPartition = (SubListPartition)subPartition;
            return SubListPartitionClient.builder()
                .expression(getRaw(subListPartition.getExpression()))
                .columnList(ParserHelper.getColumnList(subListPartition.getColumnList()))
                .build();
        } else if (subPartition instanceof SubRangePartition) {
            SubRangePartition subRangePartition = (SubRangePartition)subPartition;
            SubRangePartitionClient subPartitionClient = SubRangePartitionClient.builder()
                .expression(getRaw(subRangePartition.getExpression()))
                .columnList(ParserHelper.getColumnList(subRangePartition.getColumnList()))
                .build();
            List<BasePartitionElement> singleRangePartitionList = subRangePartition.getSingleRangePartitionList();
            if (singleRangePartitionList != null) {
                List<PartitionElementClient> partitionList = toRangePartitionElementClient(singleRangePartitionList);
                subPartitionClient.setSingleRangePartitionList(partitionList);
            }
            return subPartitionClient;
        } else if (subPartition instanceof SubListTemplatePartition) {
            SubListTemplatePartition subListTemplatePartition = (SubListTemplatePartition)subPartition;
            List<String> columns = null;
            if (subListTemplatePartition.getColumnList() != null) {
                columns = subListTemplatePartition.getColumnList().stream().map(this::getRaw).collect(Collectors.toList());
            }
            List<SubPartitionElementClient> clients = null;
            if (subListTemplatePartition.getSubPartitionList() != null) {
                clients = subListTemplatePartition.getSubPartitionList()
                    .getSubPartitionElementList()
                    .stream()
                    .map(this::toSubPartitionElementClient)
                    .collect(Collectors.toList());
            }
            return SubListTemplatePartitionClient.builder()
                .subPartitionElementClients(clients)
                .columnList(columns)
                .expression(getRaw(subListTemplatePartition.getExpression()))
                .build();
        } else if (subPartition instanceof SubRangeTemplatePartition) {
            SubRangeTemplatePartition subRangeTemplatePartition = (SubRangeTemplatePartition)subPartition;
            String expression = null;
            if (subRangeTemplatePartition.getExpression() != null) {
                expression = formatExpression(subRangeTemplatePartition.getExpression());
            }
            List<String> columns = null;
            if (subRangeTemplatePartition.getColumnList() != null) {
                columns = subRangeTemplatePartition.getColumnList().stream().map(this::getRaw).collect(Collectors.toList());
            }
            List<SubPartitionElementClient> list = null;
            if (subRangeTemplatePartition.getSubPartitionList() != null) {
                list = subRangeTemplatePartition.getSubPartitionList()
                    .getSubPartitionElementList()
                    .stream()
                    .map(this::toSubPartitionElementClient)
                    .collect(Collectors.toList());
            }
            return SubRangeTemplatePartitionClient.builder()
                .expression(expression)
                .columnList(columns)
                .subPartitionElementClients(list)
                .build();
        }
        return null;
    }