in java/core/src/main/java/com/aliyun/openservices/tablestore/agent/util/TablestoreHelper.java [769:792]
public static String encodeNextPrimaryKeyToken(PrimaryKey nextPrimaryKey) {
List<List<Object>> primaryKeys = new ArrayList<>();
for (PrimaryKeyColumn primaryKeyColumn : nextPrimaryKey.getPrimaryKeyColumns()) {
PrimaryKeyValue columnValue = primaryKeyColumn.getValue();
Object object = null;
switch (columnValue.getType()) {
case INTEGER:
object = columnValue.asLong();
break;
case STRING:
object = columnValue.asString();
break;
default:
throw Exceptions.illegalArgument("unsupported tablestore primaryKeyValue type:%s, value:%s", columnValue.getType(), columnValue.toString());
}
primaryKeys.add(Arrays.asList(primaryKeyColumn.getName(), object));
}
try {
String sourceToken = MAPPER.writeValueAsString(primaryKeys);
return Base64.getEncoder().encodeToString(sourceToken.getBytes(StandardCharsets.UTF_8));
} catch (JsonProcessingException e) {
throw Exceptions.runtimeThrowable(String.format("encode nextPrimaryKey token failed, primaryKey:%s", nextPrimaryKey), e);
}
}