1 package net.bmahe.genetics4j.gp;
2
3 import java.util.List;
4 import java.util.Objects;
5
6 import org.immutables.value.Value;
7 import org.immutables.value.Value.Parameter;
8
9 @Value.Immutable
10 public abstract class InputSpec {
11
12 @SuppressWarnings("rawtypes")
13 @Parameter
14 public abstract List<Class> types();
15
16 public int inputSize() {
17 return types().size();
18 }
19
20 public static InputSpec of(final List<Class> types) {
21 Objects.requireNonNull(types);
22
23 return ImmutableInputSpec.of(types);
24 }
25
26 public static InputSpec of(final Class... types) {
27 Objects.requireNonNull(types);
28
29 return ImmutableInputSpec.of(List.of(types));
30 }
31
32 }