in java/core/src/main/java/com/aliyun/openservices/tablestore/agent/util/TablestoreHelper.java [338:369]
public static Message rowToMessage(Row row) {
if (row == null) {
return null;
}
PrimaryKey primaryKey = row.getPrimaryKey();
String sessionId = primaryKey.getPrimaryKeyColumn(0).getValue().asString();
Reference<String> content = new Reference<>();
String messageId;
long createTime;
PrimaryKeyColumn primaryKey1 = primaryKey.getPrimaryKeyColumn(1);
if (primaryKey1.getValue().getType().equals(PrimaryKeyType.STRING)) {
messageId = primaryKey1.getValue().asString();
createTime = primaryKey.getPrimaryKeyColumn(2).getValue().asLong();
} else {
createTime = primaryKey1.getValue().asLong();
messageId = primaryKey.getPrimaryKeyColumn(2).getValue().asString();
}
Column[] columns = row.getColumns();
Metadata metadata = columnsToMetadata(columns, (column -> {
String name = column.getName();
ColumnValue value = column.getValue();
if (Message.MESSAGE_CONTENT.equals(name)) {
content.set(value.asString());
return true;
}
return false;
}));
Message message = new Message(sessionId, messageId, createTime);
message.setContent(content.get());
message.setMetadata(metadata);
return message;
}