/*
Copyright 2006 by Sean Luke
Licensed under the Academic Free License version 3.0
See the file "LICENSE" for more information
*/
package ec;
/*
* Group.java
*
* Created: Tue Aug 10 20:49:45 1999
* By: Sean Luke
*/
/**
* Groups are used for populations and subpopulations. They are slightly
* different from Prototypes in a few important ways.
*
* A Group instance typically is set up with setup(...) and then used
* (unlike in a Prototype, where the prototype instance is never used,
* but only makes clones
* which are used). When a new Group instance is needed, it is created by
* calling emptyClone() on a previous Group instance, which returns a
* new instance set up exactly like the first Group instance had been set up
* when setup(...) was called on it.
*
* Groups are Serializable and Cloneable, but you should not clone
* them -- use emptyClone instead.
*
*
* @author Sean Luke
* @version 1.0
*/
public interface Group extends Setup, Cloneable
{
/** Returns a copy of the object just as it had been
immediately after Setup was called on it (or on
an ancestor object). You can obtain a fresh instance
using clone(), and then modify that.
*/
public Group emptyClone();
}
Ads help maintain this website.