DoubleTournamentPolicyHandlerFactory.java

package net.bmahe.genetics4j.gp.selection;

import java.util.Objects;
import java.util.random.RandomGenerator;

import net.bmahe.genetics4j.core.selection.SelectionPolicyHandler;
import net.bmahe.genetics4j.core.spec.AbstractEAExecutionContext;
import net.bmahe.genetics4j.core.spec.SelectionPolicyHandlerFactory;

public class DoubleTournamentPolicyHandlerFactory<T extends Comparable<T>> implements SelectionPolicyHandlerFactory<T> {

	@Override
	public SelectionPolicyHandler<T> apply(final AbstractEAExecutionContext<T> eaExecutionContext) {
		Objects.requireNonNull(eaExecutionContext);

		final RandomGenerator randomGenerator = eaExecutionContext.randomGenerator();
		return new DoubleTournamentSelectionPolicyHandler<>(randomGenerator);
	}

}