package com.revolsys.collection.iterator;
import java.util.Iterator;
import java.util.function.Predicate;
public interface Iterators {
static <V> Iterable<V> filter(final Iterable<V> iterable, final Predicate<V> filter) {
if (filter == null) {
return iterable;
} else {
final Iterator<V> iterator = iterable.iterator();
return new FilterIterator<>(filter, iterator);
}
}
static <V> Iterator<V> filter(final Iterator<V> iterator, final Predicate<V> filter) {
if (filter == null) {
return iterator;
} else {
return new FilterIterator<>(filter, iterator);
}
}
static <V> V next(final Iterator<V> iterator) {
if (iterator == null || !iterator.hasNext()) {
return null;
} else {
return iterator.next();
}
}
}