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;
}