View Javadoc
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   * Select uniformly a mutation policy among a list
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  }