in flink-connector-aws/flink-connector-dynamodb/src/main/java/org/apache/flink/connector/dynamodb/source/split/DynamoDbStreamsShardSplitSerializer.java [84:126]
public DynamoDbStreamsShardSplit deserialize(int version, byte[] serialized)
throws IOException {
try (ByteArrayInputStream bais = new ByteArrayInputStream(serialized);
DataInputStream in = new DataInputStream(bais)) {
if (!COMPATIBLE_VERSIONS.contains(version)) {
throw new VersionMismatchException(
"Trying to deserialize DynamoDbStreamsShardSplit serialized with unsupported version "
+ version
+ ". Version of serializer is "
+ getVersion());
}
final String streamArn = in.readUTF();
final String shardId = in.readUTF();
final ShardIteratorType shardIteratorType = ShardIteratorType.fromValue(in.readUTF());
Object startingMarker = null;
final boolean hasStartingMarker = in.readBoolean();
if (hasStartingMarker) {
if (in.readBoolean()) {
startingMarker = in.readUTF();
}
}
final boolean hasParentShardId = in.readBoolean();
String parentShardId = null;
if (hasParentShardId) {
parentShardId = in.readUTF();
}
boolean isFinished = false;
if (version > 0) {
isFinished = in.readBoolean();
}
return new DynamoDbStreamsShardSplit(
streamArn,
shardId,
new StartingPosition(shardIteratorType, startingMarker),
parentShardId,
isFinished);
}
}