1 package net.bmahe.genetics4j.core.spec.mutation;
2
3 import java.util.Arrays;
4 import java.util.List;
5
6 import org.apache.commons.lang3.Validate;
7 import org.immutables.value.Value;
8
9
10
11
12
13 @Value.Immutable
14 public abstract class MultiMutations implements MutationPolicy {
15
16 @Value.Parameter
17 public abstract List<MutationPolicy> mutationPolicies();
18
19 @Value.Check
20 protected void check() {
21 Validate.notNull(mutationPolicies());
22 }
23
24 public static MultiMutations of(final List<MutationPolicy> mutationPolicies) {
25 return ImmutableMultiMutations.of(mutationPolicies);
26 }
27
28 public static MultiMutations of(final MutationPolicy... mutationPolicies) {
29 return ImmutableMultiMutations.of(Arrays.asList(mutationPolicies));
30 }
31 }