@Nullable
    @Override
    public String nextSplit() {
        String nextSplit = this.splitId;
        // set the splitId to null to indicate no more splits
        // this class only contains record for one split
        this.splitId = null;
        return nextSplit;
    }
{@link RecordsWithSplitIds} is used to pass a batch of records from fetcher to source reader.
Batching is to improve the efficiency for records handover.

<p>{@link RecordsWithSplitIds} interface can encapsulate batches from multiple splits. This is
the case for Kafka source where fetchers can retrieve records from multiple Kafka partitions at
the same time.

<p>For file-based sources like Iceberg, readers always read one split/file at a time. Hence, we
will only have a batch of records for one split here.

<p>This class uses array to store a batch of records from the same file (with the same
fileOffset).

Copy from iceberg-flink:iceberg-flink-1.15:1.3.1
inlong-sort/sort-flink/sort-flink-v1.15/sort-connectors/iceberg/src/main/java/org/apache/inlong/sort/iceberg/source/reader/ArrayBatchRecords.java