in java/core/src/main/java/com/aliyun/openservices/tablestore/agent/util/TablestoreHelper.java [279:306]
public static Session rowToSession(Row row) {
if (row == null) {
return null;
}
PrimaryKey primaryKey = row.getPrimaryKey();
String userId = primaryKey.getPrimaryKeyColumn(0).getValue().asString();
Reference<Long> updateTime = new Reference<>();
String sessionId;
if (primaryKey.size() == 2) {
sessionId = primaryKey.getPrimaryKeyColumn(1).getValue().asString();
} else {
updateTime.set(primaryKey.getPrimaryKeyColumn(1).getValue().asLong());
sessionId = primaryKey.getPrimaryKeyColumn(2).getValue().asString();
}
Column[] columns = row.getColumns();
Metadata metadata = columnsToMetadata(columns, (column -> {
String name = column.getName();
ColumnValue value = column.getValue();
if (Session.SESSION_UPDATE_TIME.equals(name)) {
updateTime.set(value.asLong());
return true;
}
return false;
}));
Session session = new Session(userId, sessionId, updateTime.get());
session.setMetadata(metadata);
return session;
}