View Javadoc
1   package net.bmahe.genetics4j.core.spec.mutation;
2   
3   import java.util.Objects;
4   
5   import org.apache.commons.lang3.Validate;
6   import org.immutables.value.Value;
7   
8   @Value.Immutable
9   public abstract class PartialMutation implements MutationPolicy {
10  
11  	@Value.Parameter
12  	public abstract int chromosomeIndex();
13  
14  	@Value.Parameter
15  	public abstract MutationPolicy mutationPolicy();
16  
17  	@Value.Check
18  	protected void check() {
19  		Validate.isTrue(chromosomeIndex() >= 0);
20  		Objects.requireNonNull(mutationPolicy());
21  	}
22  
23  	public static PartialMutation of(final int chromosomeIndex, final MutationPolicy mutationPolicy) {
24  		return ImmutablePartialMutation.of(chromosomeIndex, mutationPolicy);
25  	}
26  }