View Javadoc
1   package net.bmahe.genetics4j.neat.mutation.chromosome;
2   
3   import java.util.List;
4   import java.util.Objects;
5   import java.util.random.RandomGenerator;
6   
7   import net.bmahe.genetics4j.neat.Connection;
8   import net.bmahe.genetics4j.neat.chromosomes.NeatChromosome;
9   import net.bmahe.genetics4j.neat.spec.mutation.SwitchStateMutation;
10  
11  public class NeatChromosomeSwitchStateHandler
12  		extends AbstractNeatChromosomeConnectionMutationHandler<SwitchStateMutation>
13  {
14  	public NeatChromosomeSwitchStateHandler(final RandomGenerator _randomGenerator) {
15  		super(SwitchStateMutation.class, _randomGenerator);
16  	}
17  
18  	@Override
19  	protected List<Connection> mutateConnection(final SwitchStateMutation switchStateMutation,
20  			final NeatChromosome neatChromosome, final Connection oldConnection, final int i) {
21  		Objects.requireNonNull(switchStateMutation);
22  		Objects.requireNonNull(neatChromosome);
23  		Objects.requireNonNull(oldConnection);
24  
25  		final var connectionBuilder = Connection.builder().from(oldConnection);
26  		connectionBuilder.isEnabled(!oldConnection.isEnabled());
27  		return List.of(connectionBuilder.build());
28  	}
29  }