/* * This file is part of JGAP. * * JGAP offers a dual license model containing the LGPL as well as the MPL. * * For licensing information please see the file license.txt included with JGAP * or have a look at the top of class org.jgap.Chromosome which representatively * includes the JGAP license policy applicable for any file delivered with JGAP. */ package org.jgap; import java.io.*; import java.util.*; /** * Interface for central factory, see JGAPFactory. * * @author Klaus Meffert * @since 2.6 */ public interface IJGAPFactory extends Serializable { /** String containing the CVS revision. Read out via reflection!*/ final static String CVS_REVISION = "$Revision: 1.8 $"; void setParameters(Collection a_parameters); /** * @return newly created instance of a RandomGenerator */ RandomGenerator createRandomGenerator(); /** * Retrieves a clone handler capable of clone the given class. * @param a_obj the object to clone (maybe null) * @param a_classToClone the class to clone an object of * @return the clone handler found capable of clone the given class, or null * if none registered * * @author Klaus Meffert * @since 2.6 */ ICloneHandler getCloneHandlerFor(Object a_obj, Class a_classToClone); /** * Registers a clone handler that could be retrieved by * getCloneHandlerFor(Class). * @param a_cloneHandler the ICloneHandler to register * @return index of the added clone handler, needed when removeCloneHandler * will be called * * @author Klaus Meffert * @since 2.6 */ int registerCloneHandler(ICloneHandler a_cloneHandler); /** * Retrieves an initializer capable of initializing the Object of the given * class. * @param a_obj the object to init (maybe null) * @param a_objToInit the object class to init * @return the initializer found capable of initializing an object of the * given class, or null if none registered * * @author Klaus Meffert * @since 2.6 */ IInitializer getInitializerFor(Object a_obj, Class a_objToInit); /** * Registers an initializer that could be retrieved by * getInitializerFor(Class). * @param a_chromIniter the IChromosomeInitializer to register * @return index of the added initializer, needed when * removeChromosomeInitializer will be called * * @author Klaus Meffert * @since 2.6 */ int registerInitializer(IInitializer a_chromIniter); void setGeneticOperatorConstraint(IGeneticOperatorConstraint a_constraint); IGeneticOperatorConstraint getGeneticOperatorConstraint(); /** * Retrieves a handler capable of comparing two instances of the given class. * @param a_obj the object to compare (maybe null) * @param a_classToCompareTo the class instances to compare (maybe null) * @return the handler found capable of comparing instances * of the given class, or null if none registered * * @author Klaus Meffert * @since 2.6 */ ICompareToHandler getCompareToHandlerFor(Object a_obj, Class a_classToCompareTo); /** * Registers a compareTo-handler that could be retrieved by * getCompareToHandlerFor(Class). * @param a_compareToHandler the ICompareToHandler to register * @return index of the added handler, needed when removeCompareToHandler * will be called * * @author Klaus Meffert * @since 2.6 */ int registerCompareToHandler(ICompareToHandler a_compareToHandler); }