package no.priv.garshol.duke.genetic; import java.util.List; import java.util.ArrayList; import no.priv.garshol.duke.Property; import no.priv.garshol.duke.Comparator; import no.priv.garshol.duke.Configuration; import no.priv.garshol.duke.utils.ObjectUtils; /** * Sets the comparator. */ public class ComparatorAspect extends Aspect { private Property prop; private List<Comparator> comparators; public ComparatorAspect(Property prop, List<Comparator> comparators) { this.prop = prop; this.comparators = comparators; } public void setRandomly(GeneticConfiguration cfg) { Configuration config = cfg.getConfiguration(); Property p = config.getPropertyByName(prop.getName()); p.setComparator(comparators.get((int) (comparators.size() * Math.random()))); } public void setFromOther(GeneticConfiguration cfg1, GeneticConfiguration cfg2) { Configuration config = cfg1.getConfiguration(); Configuration other = cfg2.getConfiguration(); Property p1 = config.getPropertyByName(prop.getName()); Property p2 = other.getPropertyByName(prop.getName()); p1.setComparator(p2.getComparator()); } }