if (query.getFilter() != null && query.getFilter() != Filter.INCLUDE) {
features = new FilteringSimpleFeatureCollection(features, query.getFilter());
}
// step two: reproject
if (query.getCoordinateSystemReproject() != null) {
features = new ReprojectingFeatureCollection(features, query
.getCoordinateSystemReproject());
}
// step two sort! (note this makes a sorted copy)
if (query.getSortBy() != null && query.getSortBy().length != 0) {
SimpleFeature array[] = features.toArray(new SimpleFeature[features.size()]);