in core/src/main/java/org/apache/commons/functor/core/collection/FilteredIterable.java [125:145]
public <U> FilteredIterable<U> retain(final Class<U> type) {
if (type == null) {
throw new NullPointerException("filtered type was null");
}
return new FilteredIterable<U>(new Iterable<U>() {
public Iterator<U> iterator() {
return TransformedIterator.transform(
FilteredIterator.filter(FilteredIterable.this.iterator(), IsInstance.of(type)),
new Function<T, U>() {
@SuppressWarnings("unchecked")
// this is okay because of the isinstance check
public U evaluate(T obj) {
return (U) obj;
}
});
}
});
}