package de.invesdwin.util.collections.iterable.collection; import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.annotation.concurrent.Immutable; import de.invesdwin.util.collections.IFastToListProvider; import de.invesdwin.util.collections.iterable.ICloseableIterable; import de.invesdwin.util.collections.iterable.ICloseableIterator; @Immutable public class CollectionCloseableIterable<E> implements ICloseableIterable<E>, IFastToListProvider<E> { private final Collection<? extends E> collection; public CollectionCloseableIterable(final Collection<? extends E> collection) { this.collection = collection; } @Override public ICloseableIterator<E> iterator() { return new CollectionCloseableIterator<E>(collection); } @Override public List<E> toList() { return new ArrayList<E>(collection); } @Override public List<E> toList(final List<E> list) { list.addAll(collection); return list; } }