Add CLI class

Add Parameter annotation
This commit is contained in:
Fabian Becker 2013-07-22 10:06:50 +02:00
parent f46dd95d77
commit a57c4f6504
2 changed files with 92 additions and 0 deletions

81
src/eva2/cli/Main.java Normal file
View File

@ -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<String> classes = GenericObjectEditor.getClassesFromClassPath("eva2.optimization.strategies.InterfaceOptimizer", null);
for(String classA : classes) {
System.out.println(classA);
}
List<String> 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);
}
}
}

View File

@ -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();
}