public DynamoDbStreamsShardSplit deserialize()

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);
        }
    }