private Optional<MixedFormatSplit> getNextSplit() {
    MixedFormatSplit mixedFormatSplit = null;
    try {
      mixedFormatSplit = splitQueue.poll(POLL_TIMEOUT, TimeUnit.MILLISECONDS);
    } catch (InterruptedException e) {
      LOG.warn("Interrupted when polling splits from the split queue", e);
    }
    if (mixedFormatSplit == null) {
      LOG.debug(
          "Couldn't retrieve mixed-format source split from the queue, as the queue is empty.");
      return Optional.empty();
    } else {
      LOG.info(
          "Assigning the mixed-format split, task index is {}, total number of splits is {}, mixed-format split is {}.",
          mixedFormatSplit.taskIndex(),
          totalSplitNum,
          mixedFormatSplit);
      return Optional.of(mixedFormatSplit);
    }
  }
This is a static split assigner which is used for batch mode.
amoro-format-mixed/amoro-mixed-flink/amoro-mixed-flink-common/src/main/java/org/apache/amoro/flink/read/hybrid/assigner/StaticSplitAssigner.java