diff --git a/src/eva2/cli/Main.java b/src/eva2/cli/Main.java new file mode 100644 index 00000000..682f91c6 --- /dev/null +++ b/src/eva2/cli/Main.java @@ -0,0 +1,81 @@ +package eva2.cli; + +import eva2.optimization.strategies.DifferentialEvolution; +import eva2.util.annotation.Parameter; +import org.apache.commons.cli.*; +import eva2.optimization.OptimizationStateListener; + +import java.lang.reflect.Field; + +public class Main implements OptimizationStateListener { + + private Options createCommandLineOptions() { + Options opt = new Options(); + OptionGroup optGroup = new OptionGroup(); + return null; + } + + @Override + public void performedStop() { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void performedStart(String infoString) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void performedRestart(String infoString) { + //To change body of implemented methods use File | Settings | File Templates. + } + + @Override + public void updateProgress(int percent, String msg) { + //To change body of implemented methods use File | Settings | File Templates. + } + + public static void printProgressBar(int percent){ + StringBuilder bar = new StringBuilder("["); + + for(int i = 0; i < 50; i++){ + if( i < (percent/2)){ + bar.append("="); + }else if( i == (percent/2)){ + bar.append(">"); + }else{ + bar.append(" "); + } + } + + bar.append("] " + percent + "% "); + System.out.print("\r" + bar.toString()); + } + + public static void main(String[] args) { + + eva2.optimization.strategies.DifferentialEvolution de = new DifferentialEvolution(); + + for(Field field : de.getClass().getDeclaredFields()) { + Parameter p; + if((p = field.getAnnotation(Parameter.class)) != null) { + System.out.println(p.name() + " -> " + p.description()); + + } + } + + /* + List classes = GenericObjectEditor.getClassesFromClassPath("eva2.optimization.strategies.InterfaceOptimizer", null); + for(String classA : classes) { + System.out.println(classA); + } + + List problems = GenericObjectEditor.getClassesFromClassPath("eva2.optimization.problems.InterfaceOptimizationProblem", null); + for(String problem : problems) { + System.out.println(problem); + } */ + for(int i = 0; i<= 100; i++) { + printProgressBar(i); + } + } +} diff --git a/src/eva2/util/annotation/Parameter.java b/src/eva2/util/annotation/Parameter.java new file mode 100644 index 00000000..0dbc69f5 --- /dev/null +++ b/src/eva2/util/annotation/Parameter.java @@ -0,0 +1,11 @@ +package eva2.util.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface Parameter { + String name(); + + String description(); +}