Add CLI class
Add Parameter annotation
This commit is contained in:
parent
f46dd95d77
commit
a57c4f6504
81
src/eva2/cli/Main.java
Normal file
81
src/eva2/cli/Main.java
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
11
src/eva2/util/annotation/Parameter.java
Normal file
11
src/eva2/util/annotation/Parameter.java
Normal 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();
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user