1 package net.bmahe.genetics4j.extras.evolutionlisteners; 2 3 import java.util.Optional; 4 5 import org.immutables.value.Value; 6 7 import net.bmahe.genetics4j.core.Genotype; 8 9 @Value.Immutable 10 public interface EvolutionStep<T extends Comparable<T>, U> { 11 12 @Value.Parameter 13 Optional<U> context(); 14 15 @Value.Parameter 16 long generation(); 17 18 @Value.Parameter 19 int individualIndex(); 20 21 @Value.Parameter 22 Genotype individual(); 23 24 @Value.Parameter 25 T fitness(); 26 27 @Value.Parameter 28 boolean isDone(); 29 30 public static class Builder<T extends Comparable<T>, U> extends ImmutableEvolutionStep.Builder<T, U> { 31 } 32 33 public static <T extends Comparable<T>, U> EvolutionStep<T, U> of(final Optional<U> context, final long generation, 34 final int individualIndex, final Genotype individual, final T fitness, final boolean isDone) { 35 36 return ImmutableEvolutionStep.of(context, generation, individualIndex, individual, fitness, isDone); 37 } 38 39 }