1 package net.bmahe.genetics4j.core.spec.chromosome;
2
3 import org.apache.commons.lang3.Validate;
4 import org.immutables.value.Value;
5
6 @Value.Immutable
7 public abstract class BitChromosomeSpec implements ChromosomeSpec {
8
9 @Value.Parameter
10 public abstract int numBits();
11
12 @Value.Check
13 protected void check() {
14 Validate.isTrue(numBits() > 0);
15 }
16
17 public static BitChromosomeSpec of(final int numBits) {
18 return ImmutableBitChromosomeSpec.of(numBits);
19 }
20 }