private void runSelectionStrategies( IProgressMonitor monitor, FeatureIterator<SimpleFeature> reader) { List<SelectionStrategy> strategies = parameters.selectionStrategies; UndoableComposite compositeCommand = new UndoableComposite(); compositeCommand.setName(Messages.SelectGeometryCommand_name); SimpleFeature firstFeature = reader.next(); for (SelectionStrategy selectionStrategy : strategies) { selectionStrategy.run(monitor, compositeCommand, parameters, firstFeature, true); } while (reader.hasNext()) { SimpleFeature nextFeature = reader.next(); for (SelectionStrategy selectionStrategy : strategies) { selectionStrategy.run(monitor, compositeCommand, parameters, nextFeature, false); } } this.command = compositeCommand; }