package org.osgl.util; import org.osgl.$; import java.util.Iterator; /** * Created with IntelliJ IDEA. * User: luog * Date: 9/11/13 * Time: 9:51 AM * To change this template use File | Settings | File Templates. */ class IndexFilteredSeq<T> extends IterableSeq<T> { private $.Predicate<Integer> filter; IndexFilteredSeq(Iterable<? extends T> iterable, $.Function<Integer, Boolean> predicate) { super(iterable); E.NPE(predicate); filter = $.predicate(predicate); } @Override public Iterator<T> iterator() { return Iterators.filterIndex(super.iterator(), filter); } static <T> C.Sequence<T> of(Iterable<? extends T> iterable, $.Function<Integer, Boolean> predicate) { return new IndexFilteredSeq<T>(iterable, predicate); } }