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 }