1 package net.bmahe.genetics4j.core.spec;
2
3 import java.util.Arrays;
4
5 import org.immutables.value.Value;
6
7 import net.bmahe.genetics4j.core.Fitness;
8 import net.bmahe.genetics4j.core.spec.chromosome.ChromosomeSpec;
9 import net.bmahe.genetics4j.core.spec.mutation.MutationPolicy;
10
11
12
13
14
15
16
17
18
19 @Value.Immutable
20 public abstract class EAConfiguration<T extends Comparable<T>> extends AbstractEAConfiguration<T> {
21
22
23
24
25
26
27 public abstract Fitness<T> fitness();
28
29 public static class Builder<T extends Comparable<T>> extends ImmutableEAConfiguration.Builder<T> {
30
31 public final EAConfiguration.Builder<T> chromosomeSpecs(final ChromosomeSpec... elements) {
32 return this.chromosomeSpecs(Arrays.asList(elements));
33 }
34
35 public final EAConfiguration.Builder<T> mutationPolicies(final MutationPolicy... elements) {
36 return this.mutationPolicies(Arrays.asList(elements));
37 }
38 }
39 }