Iterator it = features.iterator();
if(query.getFilter() != null && Filter.INCLUDE.equals(query.getFilter())) {
it = new FilteringIterator<Feature>(it, query.getFilter());
}
if(targetSchema != sourceSchema) {
it = new ReTypingIterator(it, sourceSchema, targetSchema);
}
return it;
}