package org.infinispan.commons.util; import java.util.Iterator; /** * Interface that provides semantics of a {@link Iterator} and {@link AutoCloseable} interfaces. This is * useful when you have data that must be iterated on and may hold resources in the underlying implementation that * must be closed. * <p>Some implementations may close resources automatically when the iterator is finished being iterated on however * this is an implementation detail and all callers should call {@link AutoCloseable#close()} method to be * sure all resources are freed properly.</p> * * @author wburns * @since 7.0 */ public interface CloseableIterator<E> extends AutoCloseable, Iterator<E> { @Override void close(); }