package jcgp.function; import java.util.ArrayList; import java.util.Iterator; /** * * @author Eduardo Pedroni * */ public abstract class FunctionSet { protected Function[] functionList; protected ArrayList allowedFunctions; protected int maxArity; protected String name; // public int getTotalFunctionCount() { // return functionList.length; // } public int getFunctionCount() { return allowedFunctions.size(); } public Function getFunction(int index) { return allowedFunctions.get(index); } public int getMaxArity(){ return maxArity; } public String getName() { return name; } public void disableFunction(int index) { for (Iterator iterator = allowedFunctions.iterator(); iterator.hasNext();) { if (index < functionList.length) { Function function = (Function) iterator.next(); if (function == functionList[index]) { iterator.remove(); } } } } public void enableFunction(int index) { if (!allowedFunctions.contains(functionList[index])) { allowedFunctions.add(functionList[index]); } } }