Comparator<SolverBenchmark> solverBenchmarkRankingComparator = null;
SolverBenchmarkRankingWeightFactory solverBenchmarkRankingWeightFactory = null;
if (solverBenchmarkRankingType != null) {
switch (solverBenchmarkRankingType) {
case TOTAL_SCORE:
solverBenchmarkRankingComparator = new TotalScoreSolverBenchmarkRankingComparator();
break;
case WORST_SCORE:
solverBenchmarkRankingComparator = new WorstScoreSolverBenchmarkRankingComparator();
break;
case TOTAL_RANKING:
solverBenchmarkRankingWeightFactory = new TotalRankSolverBenchmarkRankingWeightFactory();
break;
default:
throw new IllegalStateException("The solverBenchmarkRankingType ("
+ solverBenchmarkRankingType + ") is not implemented");
}
}
if (solverBenchmarkRankingComparatorClass != null) {
solverBenchmarkRankingComparator = ConfigUtils.newInstance(this,
"solverBenchmarkRankingComparatorClass", solverBenchmarkRankingComparatorClass);
}
if (solverBenchmarkRankingWeightFactoryClass != null) {
try {
solverBenchmarkRankingWeightFactory = solverBenchmarkRankingWeightFactoryClass.newInstance();
} catch (InstantiationException e) {
throw new IllegalArgumentException("solverBenchmarkComparatorFactoryClass ("
+ solverBenchmarkRankingWeightFactoryClass.getName()
+ ") does not have a public no-arg constructor", e);
} catch (IllegalAccessException e) {
throw new IllegalArgumentException("solverBenchmarkComparatorFactoryClass ("
+ solverBenchmarkRankingWeightFactoryClass.getName()
+ ") does not have a public no-arg constructor", e);
}
}
if (solverBenchmarkRankingComparator != null) {
plannerBenchmark.setSolverBenchmarkRankingComparator(solverBenchmarkRankingComparator);
} else if (solverBenchmarkRankingWeightFactory != null) {
plannerBenchmark.setSolverBenchmarkRankingWeightFactory(solverBenchmarkRankingWeightFactory);
} else {
plannerBenchmark.setSolverBenchmarkRankingComparator(new TotalScoreSolverBenchmarkRankingComparator());
}
}