MultiStageDescriptor.java
package net.bmahe.genetics4j.gpu.spec.fitness.multistage;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import org.apache.commons.lang3.Validate;
import org.immutables.value.Value;
import net.bmahe.genetics4j.gpu.spec.fitness.cldata.StaticDataLoader;
@Value.Immutable
public interface MultiStageDescriptor {
Map<String, StaticDataLoader> staticDataLoaders();
List<StageDescriptor> stageDescriptors();
@Value.Check
default void check() {
Objects.requireNonNull(stageDescriptors());
Validate.isTrue(stageDescriptors().isEmpty() == false, "At least one stage descriptor must be specified");
}
static ImmutableMultiStageDescriptor.Builder builder() {
return ImmutableMultiStageDescriptor.builder();
}
}