package resa.util;
import java.util.Iterator;
import java.util.Objects;
import java.util.stream.StreamSupport;
/**
* Iterate on a given iterator to get a fixed number of element
* <p/>
*
* @author Troy Ding
*/
public class SizeBoundedIterable<T> implements Iterable<T> {
private Iterable<T> input;
private int maxSize;
public SizeBoundedIterable(int maxSize, Iterable<T> input) {
this.input = Objects.requireNonNull(input);
this.maxSize = maxSize;
}
@Override
public Iterator<T> iterator() {
return StreamSupport.stream(input.spliterator(), false).limit(maxSize).iterator();
}
}