public Iterator<Object> iterator() {
   IteratorChain iteratorChain = new IteratorChain();
   for (PlanningEntitySelector planningEntitySelector : planningEntitySelectorList) {
     iteratorChain.addIterator(planningEntitySelector.iterator());
   }
   return iteratorChain;
 }
 public void phaseEnded(GreedyFitSolverPhaseScope greedyFitSolverPhaseScope) {
   for (PlanningEntitySelector planningEntitySelector : planningEntitySelectorList) {
     planningEntitySelector.phaseEnded(greedyFitSolverPhaseScope);
   }
 }
 public void stepEnded(GreedyFitStepScope greedyFitStepScope) {
   for (PlanningEntitySelector planningEntitySelector : planningEntitySelectorList) {
     planningEntitySelector.stepEnded(greedyFitStepScope);
   }
 }