code: package us.msu.cse.repair.ec.operators.crossover;
  
  import java.util.HashMap;
  
  import jmetal.operators.crossover.Crossover;
  import jmetal.operators.crossover.CrossoverFactory;
  import jmetal.util.JMException;
  
  public class ExtendedCrossoverFactory {
  
  	@SuppressWarnings({ "rawtypes", "unchecked" })
  	public static Crossover getCrossoverOperator(String name, HashMap parameters) throws JMException {
  		if (name.equalsIgnoreCase("HUXSinglePointCrossover"))
  			return new HUXSinglePointCrossover(parameters);
  		else if (name.equalsIgnoreCase("PureSinglePointCrossover"))
  			return new PureSinglePointCrossover(parameters);
  		else if (name.equalsIgnoreCase("GenProgSinglePointCrossover"))
  			return new GenProgSinglePointCrossover(parameters);
  		else if (name.equalsIgnoreCase("RandomWithOutCrossover"))
  			return new RandomWithOutCrossover(parameters);
  		else
  			return CrossoverFactory.getCrossoverOperator(name, parameters);
  	}
  }
  