Refactor InterfaceTerminator to terminators package

This commit is contained in:
Fabian Becker 2013-10-30 16:30:35 +01:00
parent dbb6d54e26
commit ad336a59cd
37 changed files with 52 additions and 51 deletions

View File

@ -5,7 +5,7 @@ import eva2.optimization.enums.MutateESCrossoverTypeEnum;
import eva2.optimization.enums.PSOTopologyEnum;
import eva2.optimization.enums.PostProcessMethod;
import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.*;
import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operator.archiving.ArchivingNSGAII;

View File

@ -2,7 +2,7 @@ package eva2;
import eva2.optimization.OptimizationStateListener;
import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.IndividualInterface;
import eva2.optimization.individuals.InterfaceDataTypeBinary;
import eva2.optimization.individuals.InterfaceDataTypeDouble;

View File

@ -637,7 +637,6 @@ public class BeanInspector {
} else {
Description description = obj.getClass().getAnnotation(Description.class);
if (description != null) {
;
infoBf.append("\t");
infoBf.append(description.text());
}
@ -667,18 +666,18 @@ public class BeanInspector {
e.printStackTrace();
return null;
}
PropertyDescriptor[] m_Properties = bi.getPropertyDescriptors();
PropertyDescriptor[] propertyDescriptors = bi.getPropertyDescriptors();
ArrayList<String> memberInfoList = new ArrayList<String>();
for (int i = 0; i < m_Properties.length; i++) {
if (m_Properties[i].isExpert()) {
for (int i = 0; i < propertyDescriptors.length; i++) {
if (propertyDescriptors[i].isExpert()) {
continue;
}
String name = m_Properties[i].getDisplayName();
String name = propertyDescriptors[i].getDisplayName();
Method getter = m_Properties[i].getReadMethod();
Method setter = m_Properties[i].getWriteMethod();
Method getter = propertyDescriptors[i].getReadMethod();
Method setter = propertyDescriptors[i].getWriteMethod();
// Only display read/write properties.
if (getter == null || setter == null) {
continue;
@ -691,7 +690,7 @@ public class BeanInspector {
// Don't try to set null values:
if (value == null) {
// If it's a user-defined property we give a warning.
String getterClass = m_Properties[i].getReadMethod().getDeclaringClass().getName();
String getterClass = propertyDescriptors[i].getReadMethod().getDeclaringClass().getName();
if (getterClass.indexOf("java.") != 0) {
System.err.println("Warning: Property \"" + name + "\" has null initial value. Skipping.");
}
@ -704,7 +703,7 @@ public class BeanInspector {
memberInfoBf.append("\tType: ");
if (m_Properties[i].isHidden()) {
if (propertyDescriptors[i].isHidden()) {
memberInfoBf.append("restricted, ");
} else {
memberInfoBf.append("common, ");
@ -730,6 +729,7 @@ public class BeanInspector {
memberInfoBf.append(toString(value));
}
// now look for a TipText method for this property
Method tipTextMethod = hasMethod(obj, name + "TipText", null);
if (tipTextMethod == null) {
@ -1030,6 +1030,7 @@ public class BeanInspector {
public static String getToolTipText(String name, MethodDescriptor[] methods, Object target, boolean stripToolTipToFirstPoint, int toHTMLLen) {
String result = "";
String tipName = name + "TipText";
for (int j = 0; j < methods.length; j++) {
String mname = methods[j].getDisplayName();
Method meth = methods[j].getMethod();
@ -1047,11 +1048,17 @@ public class BeanInspector {
}
}
} catch (Exception ex) {
}
break;
}
}
} // end for looking for tiptext
if(result.isEmpty()) {
LOGGER.fine(String.format("No ToolTip for %s.%s available.", target.getClass().getName(), name));
}
if (toHTMLLen > 0) {
return StringTools.toHTML(result, toHTMLLen);
} else {

View File

@ -275,7 +275,7 @@ public class Main extends JFrame implements OptimizationStateListener {
}
private void preloadClasses() {
ClassPreloader cp = new ClassPreloader("eva2.optimization.strategies.InterfaceOptimizer", "eva2.optimization.problems.InterfaceOptimizationProblem", "eva2.optimization.go.InterfaceTerminator");
ClassPreloader cp = new ClassPreloader("eva2.optimization.strategies.InterfaceOptimizer", "eva2.optimization.problems.InterfaceOptimizationProblem", "eva2.optimization.operator.terminators.InterfaceTerminator");
new Thread(cp).start();
}

View File

@ -1,7 +1,7 @@
package eva2.gui;
import eva2.gui.editor.*;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.codings.gp.GPArea;
import eva2.tools.SelectedTag;
import eva2.tools.StringSelection;

View File

@ -1,6 +1,7 @@
package eva2.optimization.go;
import eva2.optimization.operator.postprocess.InterfacePostProcessParams;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.problems.InterfaceAdditionalPopulationInformer;
import eva2.optimization.problems.InterfaceOptimizationProblem;
import eva2.optimization.strategies.InterfaceOptimizer;

View File

@ -4,7 +4,7 @@ package eva2.optimization.mocco;
import eva2.gui.PropertyDoubleArray;
import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.operator.moso.MOSOWeightedFitness;

View File

@ -3,7 +3,7 @@ package eva2.optimization.mocco;
import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.population.Population;
import eva2.optimization.strategies.GeneticAlgorithm;

View File

@ -3,7 +3,7 @@ package eva2.optimization.mocco;
import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.operator.migration.SOBestMigration;
import eva2.optimization.operator.moso.MOSOLpMetric;

View File

@ -3,7 +3,7 @@ package eva2.optimization.mocco;
import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.strategies.GeneticAlgorithm;
import eva2.optimization.strategies.InterfaceOptimizer;

View File

@ -4,7 +4,7 @@ package eva2.optimization.mocco;
import eva2.gui.PropertyDoubleArray;
import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.operator.moso.MOSOWeightedFitness;

View File

@ -3,7 +3,7 @@ package eva2.optimization.mocco;
import eva2.gui.PropertyEditorProvider;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.go.MOCCOStandalone;
import eva2.optimization.operator.migration.SOBestMigration;
import eva2.optimization.operator.moso.MOSOWeightedLPTchebycheff;

View File

@ -1,6 +1,6 @@
package eva2.optimization.mocco;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.operator.archiving.ArchivingAllDominating;
import eva2.optimization.operator.terminators.EvaluationTerminator;

View File

@ -4,7 +4,7 @@ import eva2.gui.BeanInspector;
import eva2.optimization.go.InterfaceNotifyOnInformers;
import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.operator.postprocess.InterfacePostProcessParams;
import eva2.optimization.operator.postprocess.PostProcessParams;
import eva2.optimization.problems.InterfaceAdditionalPopulationInformer;

View File

@ -1,7 +1,7 @@
package eva2.optimization.modules;
import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.problems.F1Problem;
import eva2.optimization.problems.InterfaceOptimizationProblem;

View File

@ -10,6 +10,7 @@ import eva2.optimization.operator.postprocess.PostProcessParams;
import eva2.optimization.operator.postprocess.SolutionHistogram;
import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.operator.terminators.GenerationTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.population.Population;
import eva2.optimization.population.PopulationInterface;
import eva2.optimization.problems.AbstractOptimizationProblem;

View File

@ -2,7 +2,7 @@ package eva2.optimization.modules;
import eva2.optimization.go.InterfaceOptimizationParameters;
import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.operator.terminators.EvaluationTerminator;
import eva2.optimization.population.Population;
import eva2.optimization.problems.B1Problem;

View File

@ -7,7 +7,7 @@ import eva2.gui.plot.Plot;
import eva2.gui.plot.TopoPlot;
import eva2.optimization.enums.ESMutationInitialSigma;
import eva2.optimization.enums.PostProcessMethod;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.*;
import eva2.optimization.modules.OptimizationParameters;
import eva2.optimization.operator.cluster.ClusteringDensityBased;

View File

@ -1,6 +1,5 @@
package eva2.optimization.operator.terminators;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.population.InterfaceSolutionSet;
import eva2.optimization.population.PopulationInterface;
import eva2.optimization.problems.InterfaceOptimizationProblem;

View File

@ -1,6 +1,5 @@
package eva2.optimization.operator.terminators;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.distancemetric.InterfaceDistanceMetric;
import eva2.optimization.operator.distancemetric.PhenotypeMetric;
import eva2.optimization.population.Population;

View File

@ -1,6 +1,5 @@
package eva2.optimization.operator.terminators;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.population.InterfaceSolutionSet;
import eva2.optimization.population.PopulationInterface;
import eva2.optimization.problems.InterfaceOptimizationProblem;

View File

@ -1,6 +1,5 @@
package eva2.optimization.operator.terminators;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.population.PopulationInterface;
import eva2.tools.math.Mathematics;

View File

@ -14,7 +14,6 @@ package eva2.optimization.operator.terminators;
*==========================================================================*/
import eva2.gui.BeanInspector;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.population.InterfaceSolutionSet;
import eva2.optimization.population.PopulationInterface;
import eva2.optimization.problems.InterfaceOptimizationProblem;

View File

@ -1,6 +1,5 @@
package eva2.optimization.operator.terminators;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.population.InterfaceSolutionSet;
import eva2.optimization.population.PopulationInterface;
import eva2.optimization.problems.InterfaceOptimizationProblem;

View File

@ -1,6 +1,5 @@
package eva2.optimization.operator.terminators;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.individuals.AbstractEAIndividualComparator;
import eva2.optimization.operator.distancemetric.ObjectiveSpaceMetric;

View File

@ -1,4 +1,4 @@
package eva2.optimization.go;
package eva2.optimization.operator.terminators;
import eva2.optimization.population.InterfaceSolutionSet;
import eva2.optimization.population.PopulationInterface;

View File

@ -1,6 +1,5 @@
package eva2.optimization.operator.terminators;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.population.InterfaceSolutionSet;
import eva2.optimization.population.Population;
import eva2.optimization.population.PopulationInterface;

View File

@ -1,6 +1,5 @@
package eva2.optimization.operator.terminators;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.operator.distancemetric.PhenotypeMetric;
import eva2.optimization.population.PopulationInterface;

View File

@ -1,7 +1,6 @@
package eva2.optimization.operator.terminators;
import eva2.gui.BeanInspector;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.population.InterfaceSolutionSet;
import eva2.optimization.population.PopulationInterface;
import eva2.optimization.problems.InterfaceOptimizationProblem;

View File

@ -1,7 +1,7 @@
package eva2.optimization.problems;
import eva2.optimization.enums.PostProcessMethod;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.individuals.InterfaceDataTypeDouble;
import eva2.optimization.operator.cluster.ClusteringDensityBased;

View File

@ -3,7 +3,7 @@ package eva2.optimization.strategies;
import eva2.OptimizerFactory;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.enums.PSOTopologyEnum;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.individuals.InterfaceDataTypeDouble;
import eva2.optimization.modules.OptimizationParameters;

View File

@ -6,7 +6,7 @@ import eva2.gui.plot.GraphPointSet;
import eva2.gui.plot.Plot;
import eva2.gui.plot.TopoPlot;
import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.individuals.AbstractEAIndividualComparator;
import eva2.optimization.individuals.InterfaceDataTypeDouble;

View File

@ -34,7 +34,9 @@ import java.util.Vector;
@Description(text = "Differential Evolution using a steady-state population scheme.")
public class DifferentialEvolution implements InterfaceOptimizer, java.io.Serializable {
@Parameter(name = "Population", description = "Edit the properties of the population used.")
protected Population population = new Population();
protected transient Population children = null;
protected AbstractOptimizationProblem optimizationProblem = new F1Problem();

View File

@ -2,7 +2,7 @@ package eva2.optimization.strategies;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.operator.mutation.MutateESRankMuCMA;
import eva2.optimization.operator.terminators.FitnessConvergenceTerminator;

View File

@ -5,7 +5,7 @@ import eva2.gui.editor.GenericObjectEditor;
import eva2.gui.plot.TopoPlot;
import eva2.optimization.enums.PSOTopologyEnum;
import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.individuals.InterfaceDataTypeDouble;
import eva2.optimization.modules.OptimizationParameters;

View File

@ -5,7 +5,7 @@ import eva2.OptimizerRunnable;
import eva2.gui.BeanInspector;
import eva2.gui.editor.GenericObjectEditor;
import eva2.optimization.go.InterfacePopulationChangedEventListener;
import eva2.optimization.go.InterfaceTerminator;
import eva2.optimization.operator.terminators.InterfaceTerminator;
import eva2.optimization.individuals.AbstractEAIndividual;
import eva2.optimization.individuals.InterfaceDataTypeDouble;
import eva2.optimization.modules.OptimizationParameters;

View File

@ -36,7 +36,7 @@ public abstract class AbstractObjectEditor implements PropertyEditor, java.beans
*/
public Object m_Object;
public Object m_Backup;
public GeneralGenericObjectEditorPanel m_EditorComponent;
public GeneralGenericObjectEditorPanel objectEditorPanel;
public Hashtable m_Editors = new Hashtable();
/**
@ -261,24 +261,24 @@ public abstract class AbstractObjectEditor implements PropertyEditor, java.beans
* from a list of property elements
*
* @param prop The property to search for
* @param props All properties.
* @param propertyDescriptors All properties.
* @return PropertyEditor
*/
public GeneralOptimizationEditorProperty getEditorFor(String prop, PropertyDescriptor[] props, MethodDescriptor[] methods, Object target) {
public GeneralOptimizationEditorProperty getEditorFor(String prop, PropertyDescriptor[] propertyDescriptors, MethodDescriptor[] methods, Object target) {
GeneralOptimizationEditorProperty result = null;
for (int i = 0; i < props.length; i++) {
if (props[i].getName().equalsIgnoreCase(prop)) {
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
if (propertyDescriptor.getName().equalsIgnoreCase(prop)) {
result = new GeneralOptimizationEditorProperty();
Object args[] = {};
result.m_getMethod = props[i].getReadMethod();
result.m_setMethod = props[i].getWriteMethod();
result.m_PropertyType = props[i].getPropertyType();
result.m_Name = props[i].getDisplayName();
result.m_getMethod = propertyDescriptor.getReadMethod();
result.m_setMethod = propertyDescriptor.getWriteMethod();
result.m_PropertyType = propertyDescriptor.getPropertyType();
result.m_Name = propertyDescriptor.getDisplayName();
result.m_Label = new JLabel(result.m_Name, SwingConstants.RIGHT);
result.m_TipText = BeanInspector.getToolTipText(result.m_Name, methods, target);
try {
result.m_Value = result.m_getMethod.invoke(target, args);
result.m_Editor = PropertyEditorProvider.findEditor(props[i], result.m_Value);
result.m_Editor = PropertyEditorProvider.findEditor(propertyDescriptor, result.m_Value);
if (result.m_Editor == null) {
result.m_Editor = PropertyEditorProvider.findEditor(result.m_PropertyType);
}