public void close() { delegate.close(); }
public void remove() { delegate.remove(); }
public boolean hasNext() { return delegate.hasNext() || hasMorePages(); }
public static <T> void foreach(final CloseableIterator<T> iterator, final Consumer<T> consumer) { try { CollectionUtil.foreach(iterator, consumer); } finally { iterator.close(); } }
private void createDelegate() { final int start = end + 1; // end inits to -1 end = Math.min(end + pageSize, ids.size()); delegate.close(); delegate = new DatabaseIterator<>(resolverFactory.get(), iteratorFactory.apply(ids.subList(start, end))); } }