package org.infinispan.commons.util; import java.util.Spliterator; /** * Interface that provides semantics of a {@link Spliterator} and {@link AutoCloseable} interfaces. This is * useful when you have data that can be splitted and may hold resources in the underlying implementation that * must be closed. * <p>A spliterator split from this is not closeable. Only the original {@link CloseableSpliterator} is * required to be closed</p> * <p>Some implementations may close resources automatically when the spliterator is exhausted however * this is an implementation detail and all callers should call {@link AutoCloseable#close()} method to be * sure all resources are freed properly.</p> * @since 8.0 */ public interface CloseableSpliterator<T> extends Spliterator<T>, AutoCloseable { @Override void close(); }