Add Population serializer.

This commit is contained in:
Fabian Becker 2014-11-18 19:32:19 +01:00
parent ad7a5ea86c
commit 031e5b432a

View File

@ -1,9 +1,13 @@
package eva2.yaml; package eva2.yaml;
import eva2.optimization.population.Population;
import eva2.util.annotation.Hidden; import eva2.util.annotation.Hidden;
import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.error.YAMLException;
import org.yaml.snakeyaml.introspector.Property; import org.yaml.snakeyaml.introspector.Property;
import org.yaml.snakeyaml.nodes.Node;
import org.yaml.snakeyaml.representer.Represent;
import org.yaml.snakeyaml.representer.Representer; import org.yaml.snakeyaml.representer.Representer;
import java.beans.BeanInfo; import java.beans.BeanInfo;
@ -33,6 +37,10 @@ public class BeanSerializer {
} }
class OptimizationRepresenter extends Representer { class OptimizationRepresenter extends Representer {
public OptimizationRepresenter() {
this.representers.put(Population.class, new RepresentPopulation());
}
@Override @Override
protected Set<Property> getProperties(Class<?> type) protected Set<Property> getProperties(Class<?> type)
throws IntrospectionException { throws IntrospectionException {
@ -59,4 +67,15 @@ class OptimizationRepresenter extends Representer {
} }
return filtered; return filtered;
} }
private class RepresentPopulation implements Represent {
public Node representData(Object data) {
try {
return representJavaBean(getProperties(data.getClass()), data);
} catch (IntrospectionException var3) {
throw new YAMLException(var3);
}
}
}
} }