package hibernate; import org.hibernate.engine.HibernateIterator; import java.io.Closeable; import java.io.IOException; import java.util.Iterator; /** * Iterator implementing Closeable and delegating to a Hibernate iterator **/ public class CloseableIterator<T> implements Iterator<T>, Closeable { private HibernateIterator iterator; public CloseableIterator(HibernateIterator iterator) { this.iterator = iterator; } @Override public boolean hasNext() { return iterator.hasNext(); } @SuppressWarnings("unchecked") @Override public T next() { return (T) iterator.next(); } @Override public void close() throws IOException { iterator.close(); } @Override public void remove() { throw new UnsupportedOperationException(); } }