package org.vertexium.util; import java.util.Iterator; public abstract class FilterIterable<T> extends LookAheadIterable<T, T> implements Iterable<T> { private final Iterable<? extends T> iterable; public FilterIterable(Iterable<? extends T> iterable) { this.iterable = iterable; } @Override protected T convert(T next) { return next; } @Override protected Iterator<T> createIterator() { return (Iterator<T>) this.iterable.iterator(); } protected final boolean isIncluded(T src, T dest) { return isIncluded(src); } protected abstract boolean isIncluded(T o); }