code: protected Iterator<WorkUnit> getWorkUnitIterator(Iterator<Dataset> datasetIterator, String previousDatasetUrnWatermark,
        @Nullable String previousPartitionUrnWatermark, int maximumWorkUnits) throws IOException {
      return new DeepIterator(datasetIterator, previousDatasetUrnWatermark, previousPartitionUrnWatermark,
              maximumWorkUnits);
    }
docs: A factory to generate {@link WorkUnitStream} given a generic type datasetIterator.
  @throws IOException