View Javadoc
1   package net.bmahe.genetics4j.neat.combination.parentcompare;
2   
3   import java.util.Objects;
4   
5   import net.bmahe.genetics4j.neat.chromosomes.NeatChromosome;
6   import net.bmahe.genetics4j.neat.spec.combination.parentcompare.FitnessComparison;
7   import net.bmahe.genetics4j.neat.spec.combination.parentcompare.ParentComparisonPolicy;
8   
9   public class FitnessComparisonHandler implements ParentComparisonHandler {
10  
11  	@Override
12  	public boolean canHandle(final ParentComparisonPolicy parentComparisonPolicy) {
13  		Objects.requireNonNull(parentComparisonPolicy);
14  
15  		return parentComparisonPolicy instanceof FitnessComparison;
16  	}
17  
18  	@Override
19  	public ChosenOtherChromosome compare(final ParentComparisonPolicy parentComparisonPolicy, final NeatChromosome first,
20  			final NeatChromosome second, final int fitnessComparison) {
21  		Objects.requireNonNull(parentComparisonPolicy);
22  		Objects.requireNonNull(first);
23  		Objects.requireNonNull(second);
24  
25  		if (fitnessComparison < 0) {
26  			return new ChosenOtherChromosome(second, first);
27  		}
28  
29  		return new ChosenOtherChromosome(first, second);
30  	}
31  }