private BaseSubPartition toBaseSubPartition()

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


    private BaseSubPartition toBaseSubPartition(SubPartitionClient s) {
        if (s instanceof SubListPartitionClient) {
            SubListPartitionClient subListPartitionClient = (SubListPartitionClient)s;
            BaseExpression expression = null;
            if (subListPartitionClient.getExpression() != null) {
                expression = (BaseExpression)getLanguageParser().parseExpression(subListPartitionClient.getExpression());
            }
            List<Identifier> columnList = null;
            if (subListPartitionClient.getColumnList() != null) {
                columnList = subListPartitionClient.getColumnList().stream().map(Identifier::new).collect(Collectors.toList());
            }
            return new SubListPartition(expression, columnList);
        }
        if (s instanceof SubRangePartitionClient) {
            SubRangePartitionClient subRangePartitionClient = (SubRangePartitionClient)s;
            BaseExpression expression = null;
            if (subRangePartitionClient.getExpression() != null) {
                expression = (BaseExpression)getLanguageParser().parseExpression(subRangePartitionClient.getExpression());
            }
            List<Identifier> columnList = null;
            if (subRangePartitionClient.getColumnList() != null) {
                columnList = subRangePartitionClient.getColumnList().stream().map(Identifier::new).collect(Collectors.toList());
            }
            List<BasePartitionElement> singleRangePartitionList = null;
            if (subRangePartitionClient.getSingleRangePartitionList() != null) {
                singleRangePartitionList = subRangePartitionClient.getSingleRangePartitionList().stream().map(this::toRangePartitionElement).collect(
                    Collectors.toList());
            }
            return new SubRangePartition(expression, columnList, singleRangePartitionList);
        }

        if (s instanceof SubListTemplatePartitionClient) {
            SubListTemplatePartitionClient subListTemplatePartitionClient = (SubListTemplatePartitionClient)s;
            BaseExpression expression = null;
            if (subListTemplatePartitionClient.getExpression() != null) {
                expression = (BaseExpression)getLanguageParser().parseExpression(subListTemplatePartitionClient.getExpression());
            }
            List<Identifier> columnList = null;
            if (subListTemplatePartitionClient.getColumnList() != null) {
                columnList = subListTemplatePartitionClient.getColumnList().stream().map(Identifier::new).collect(Collectors.toList());
            }
            SubPartitionList subPartitionList = null;
            if (subListTemplatePartitionClient.getSubPartitionElementClients() != null) {
                List<BaseSubPartitionElement> subPartitionElements = subListTemplatePartitionClient.getSubPartitionElementClients()
                    .stream()
                    .map(this::toBaseSubPartitionElement)
                    .collect(Collectors.toList());
                subPartitionList = new SubPartitionList(subPartitionElements);
            }
            return new SubListTemplatePartition(expression, columnList, subPartitionList);
        }

        if (s instanceof SubRangeTemplatePartitionClient) {
            SubRangeTemplatePartitionClient subRangeTemplatePartitionClient = (SubRangeTemplatePartitionClient)s;
            BaseExpression expression = null;
            if (subRangeTemplatePartitionClient.getExpression() != null) {
                expression = (BaseExpression)getLanguageParser().parseExpression(subRangeTemplatePartitionClient.getExpression());
            }
            List<Identifier> columnList = null;
            if (subRangeTemplatePartitionClient.getColumnList() != null) {
                columnList = subRangeTemplatePartitionClient.getColumnList().stream().map(Identifier::new).collect(Collectors.toList());
            }
            SubPartitionList subPartitionList = null;
            if (subRangeTemplatePartitionClient.getSubPartitionElementClients() != null) {
                List<BaseSubPartitionElement> subPartitionElements = subRangeTemplatePartitionClient.getSubPartitionElementClients()
                    .stream()
                    .map(this::toBaseSubPartitionElement)
                    .collect(Collectors.toList());
                subPartitionList = new SubPartitionList(subPartitionElements);
            }
            return new SubRangeTemplatePartition(expression, columnList, subPartitionList);
        }
        return null;
    }