BestSolutionRecaller bestSolutionRecaller, Termination termination,
boolean scoreBounderEnabled) {
ManualEntityMimicRecorder manualEntityMimicRecorder = new ManualEntityMimicRecorder(sourceEntitySelector);
String mimicSelectorId = sourceEntitySelector.getEntityDescriptor().getEntityClass().getName(); // TODO mimicSelectorId must be a field
configPolicy.addEntityMimicRecorder(mimicSelectorId, manualEntityMimicRecorder);
MoveSelectorConfig moveSelectorConfig_ = buildMoveSelectorConfig(configPolicy,
sourceEntitySelector, mimicSelectorId);
MoveSelector moveSelector = moveSelectorConfig_.buildMoveSelector(configPolicy,
SelectionCacheType.JUST_IN_TIME, SelectionOrder.ORIGINAL);
ScoreBounder scoreBounder = scoreBounderEnabled
? new TrendBasedScoreBounder(configPolicy.getScoreDirectorFactory()) : null;
ExhaustiveSearchDecider decider = new ExhaustiveSearchDecider(bestSolutionRecaller, termination,
manualEntityMimicRecorder, moveSelector, scoreBounderEnabled, scoreBounder);