in fastmodel-transform/fastmodel-transform-api/src/main/java/com/aliyun/fastmodel/transform/api/extension/client/converter/ExtensionClientConverter.java [256:304]
private BaseClientProperty parseRangePartition(PartitionDesc partitionDesc) {
if (partitionDesc instanceof SingleRangePartition) {
SingleRangePartition singleRangePartition = (SingleRangePartition)partitionDesc;
SingleRangeClientPartition rangePartitionValue = new SingleRangeClientPartition();
rangePartitionValue.setName(singleRangePartition.getName().getValue());
rangePartitionValue.setIfNotExists(singleRangePartition.isIfNotExists());
List<Property> propertyList = singleRangePartition.getPropertyList();
if (propertyList != null && !propertyList.isEmpty()) {
LinkedHashMap<String, String> linkedHashMap = Maps.newLinkedHashMap();
for (Property p : propertyList) {
linkedHashMap.put(p.getName(), p.getValue());
}
rangePartitionValue.setProperties(linkedHashMap);
}
BaseClientPartitionKey partitionKey = toClientPartitionKey(singleRangePartition.getPartitionKey());
rangePartitionValue.setPartitionKey(partitionKey);
//property
SingleRangePartitionProperty singleRangePartitionProperty = new SingleRangePartitionProperty();
singleRangePartitionProperty.setValue(rangePartitionValue);
return singleRangePartitionProperty;
} else if (partitionDesc instanceof MultiRangePartition) {
MultiRangePartition multiRangePartition = (MultiRangePartition)partitionDesc;
MultiRangeClientPartition multiRangePartitionValue = new MultiRangeClientPartition();
ListPartitionValue start = multiRangePartition.getStart();
String startRaw = getRaw(start);
multiRangePartitionValue.setStart(StringLiteralUtil.strip(startRaw));
ListPartitionValue end = multiRangePartition.getEnd();
String endRaw = getRaw(end);
multiRangePartitionValue.setEnd(StringLiteralUtil.strip(endRaw));
if (multiRangePartition.getLongLiteral() != null) {
LongLiteral longLiteral = multiRangePartition.getLongLiteral();
multiRangePartitionValue.setInterval(longLiteral.getValue());
}
IntervalLiteral intervalLiteral = multiRangePartition.getIntervalLiteral();
if (intervalLiteral != null) {
DateTimeEnum fromDateTime = intervalLiteral.getFromDateTime();
multiRangePartitionValue.setDateTimeEnum(fromDateTime);
LongLiteral value = (LongLiteral)intervalLiteral.getValue();
multiRangePartitionValue.setInterval(value.getValue());
}
//property
MultiRangePartitionProperty multiRangePartitionProperty = new MultiRangePartitionProperty();
multiRangePartitionProperty.setValue(multiRangePartitionValue);
return multiRangePartitionProperty;
}
return null;
}