protected AbstractScoreDirector(F scoreDirectorFactory, boolean constraintMatchEnabledPreference) {
this.scoreDirectorFactory = scoreDirectorFactory;
this.constraintMatchEnabledPreference = constraintMatchEnabledPreference;
SolutionDescriptor solutionDescriptor = getSolutionDescriptor();
trailingEntityMapSupport = new TrailingEntityMapSupport(solutionDescriptor);
variableListenerSupport = solutionDescriptor.buildVariableListenerSupport();
}