View Javadoc
1   package net.bmahe.genetics4j.neat.chromosomes.factory;
2   
3   import java.util.List;
4   import java.util.Objects;
5   
6   import org.apache.commons.lang3.Validate;
7   
8   import net.bmahe.genetics4j.core.chromosomes.factory.ChromosomeFactory;
9   import net.bmahe.genetics4j.core.spec.chromosome.ChromosomeSpec;
10  import net.bmahe.genetics4j.neat.chromosomes.NeatChromosome;
11  import net.bmahe.genetics4j.neat.spec.NeatChromosomeSpec;
12  
13  public class NeatEmptyChromosomeFactory implements ChromosomeFactory<NeatChromosome> {
14  
15  	@Override
16  	public boolean canHandle(final ChromosomeSpec chromosomeSpec) {
17  		Objects.requireNonNull(chromosomeSpec);
18  
19  		return chromosomeSpec instanceof NeatChromosomeSpec;
20  	}
21  
22  	@Override
23  	public NeatChromosome generate(ChromosomeSpec chromosomeSpec) {
24  		Objects.requireNonNull(chromosomeSpec);
25  		Validate.isInstanceOf(NeatChromosomeSpec.class, chromosomeSpec);
26  
27  		final NeatChromosomeSpec neatChromosomeSpec = (NeatChromosomeSpec) chromosomeSpec;
28  		final var nodeLayout = neatChromosomeSpec.nodeLayout();
29  		float minWeightValue = neatChromosomeSpec.minWeightValue();
30  		float maxWeightValue = neatChromosomeSpec.maxWeightValue();
31  
32  		return new NeatChromosome(nodeLayout, minWeightValue, maxWeightValue, List.of());
33  	}
34  }