/* * 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; /** * Interface for chromosome pools (e.g., see class ChromosomePool). * * @author Klaus Meffert * @since 2.6 */ public interface IChromosomePool { /** String containing the CVS revision. Read out via reflection!*/ final static String CVS_REVISION = "$Revision: 1.3 $"; /** * Attempts to acquire an Chromosome instance from the chromosome pool. * * @return a Chromosome instance from the pool or null if no Chromosome * instances are available in the pool * * @author Neil Rostan * @since 2.6 (since 1.0 in ChromosomePool) */ IChromosome acquireChromosome(); /** * Releases a Chromosome to the pool. It's not required that the Chromosome * originated from the pool--any Chromosome can be released to it. This * method should invoke the cleanup() method on each of the Chromosome's * genes prior to adding it back to the pool. * * @param a_chromosome the Chromosome instance to be released into the pool * * @author Neil Rostan * @since 2.6 (since 1.0 in ChromosomePool) */ void releaseChromosome(IChromosome a_chromosome); }