"for example a constructionHeuristicType.");
}
}
private GreedyPlanningEntitySelector buildGreedyPlanningEntitySelector(SolutionDescriptor solutionDescriptor) {
GreedyPlanningEntitySelector greedyPlanningEntitySelector = new GreedyPlanningEntitySelector();
Set<Class<?>> planningEntityImplementationClassSet = solutionDescriptor.getPlanningEntityImplementationClassSet();
if (planningEntityImplementationClassSet.size() != 1) {
// TODO Multiple MUST BE SUPPORTED TOO
throw new UnsupportedOperationException("Currently the greedyFit implementation only supports " +
"1 planningEntityImplementationClass.");
}
Class<?> planningEntityImplementationClass = planningEntityImplementationClassSet.iterator().next();
List<PlanningEntitySelector> planningEntitySelectorList = new ArrayList<PlanningEntitySelector>(1);
PlanningEntitySelector planningEntitySelector = new PlanningEntitySelector(
solutionDescriptor.getPlanningEntityDescriptor(planningEntityImplementationClass));
planningEntitySelector.setSelectionOrder(determinePlanningEntitySelectionOrder());
planningEntitySelector.setResetInitializedPlanningEntities(false);
planningEntitySelectorList.add(planningEntitySelector);
greedyPlanningEntitySelector.setPlanningEntitySelectorList(planningEntitySelectorList);
return greedyPlanningEntitySelector;
}