diff --git a/src/eva2/cli/Main.java b/src/eva2/cli/Main.java index 01ef2d59..2a26ea54 100644 --- a/src/eva2/cli/Main.java +++ b/src/eva2/cli/Main.java @@ -10,10 +10,7 @@ import org.reflections.Reflections; import java.lang.reflect.Field; import java.lang.reflect.Modifier; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; +import java.util.*; public class Main implements OptimizationStateListener { @@ -77,20 +74,34 @@ public class Main implements OptimizationStateListener { } public static Map> createOptimizerList() { - Map> optimizerList = new HashMap>(); + Map> optimizerList = new TreeMap>(); Reflections reflections = new Reflections("eva2.optimization.strategies"); Set> optimizers = reflections.getSubTypesOf(InterfaceOptimizer.class); for(Class optimizer : optimizers) { - // We only want instantiable classes. - if(optimizer.isInterface() || Modifier.isAbstract(optimizers.getClass().getModifiers())) { + // We only want instantiable classes.ya + if(optimizer.isInterface() || Modifier.isAbstract(optimizer.getModifiers())) { continue; } - optimizerList.put(optimizer.getName(), optimizer); + optimizerList.put(optimizer.getSimpleName(), optimizer); } return optimizerList; } + public static Map> createProblemList() { + Map> problemList = new TreeMap>(); + Reflections reflections = new Reflections("eva2.optimization.problems"); + Set> problems = reflections.getSubTypesOf(InterfaceOptimizationProblem.class); + for(Class problem : problems) { + // We only want instantiable classes.ya + if(problem.isInterface() || Modifier.isAbstract(problem.getModifiers())) { + continue; + } + problemList.put(problem.getSimpleName(), problem); + } + return problemList; + } + public static void showHelp(Options options) { HelpFormatter helpFormatter = new HelpFormatter(); helpFormatter.printHelp("eva2", "", options, "", true); @@ -130,12 +141,11 @@ public class Main implements OptimizationStateListener { } private static void showProblemHelp() { - System.out.println("Available Problems:"); - Reflections reflections = new Reflections("eva2.optimization.problems"); - Set> problemsList = reflections.getSubTypesOf(InterfaceOptimizationProblem.class); - for(Class problem : problemsList) { + Map> problemList= createProblemList(); - System.out.printf("\t%s\n", problem.getSimpleName()); + System.out.println("Available Problems:"); + for(String name : problemList.keySet()) { + System.out.printf("\t%s\n", name); } } }