simbad.picoevo.core.representation
Class Element

java.lang.Object
  extended by simbad.picoevo.core.representation.EvolutionObject
      extended by simbad.picoevo.core.representation.Element
All Implemented Interfaces:
java.lang.Cloneable, InitialisationInterface
Direct Known Subclasses:
Element_Array, Element_Bit, Element_Double, Element_NEAT_Gene, Element_Node

public abstract class Element
extends EvolutionObject
implements InitialisationInterface, java.lang.Cloneable


Field Summary
protected  Individual _individualOwner
           
 
Fields inherited from class simbad.picoevo.core.representation.EvolutionObject
_memoryModule, _name, _variationOperatorList
 
Constructor Summary
Element()
           
Element(Individual __individualOwner, java.util.ArrayList __elementLevelOperatorList)
           
Element(Individual __individualOwner, VariationOperator __elementLevelOperator)
           
Element(java.lang.String __name, Individual __individualOwner, java.util.ArrayList __elementLevelOperatorList)
           
Element(java.lang.String __name, Individual __individualOwner, VariationOperator __elementLevelOperator)
           
 
Method Summary
 java.lang.Object clone()
           
 void displayInformation()
           
 Individual getOwner()
           
 ParameterSet getTemplate()
           
 void performInitialisation()
          Initialise this element -- this method may be overridden with an empty method if initialisation is performed elsewhere (see "Element_*array_*" classes) If a nullPointerException is thrown, that means EITHER : (1) operator was not set ...
 void performVariations()
          This method is called recursively from the entry point towards the smallest element (if any).
 void setOwner(Individual owner)
           
 void trace()
          Trace this elements - no return value.
 
Methods inherited from class simbad.picoevo.core.representation.EvolutionObject
addOperator, addOperatorList, getDisplayInformation, getName, getVariationOperator, getVariationOperatorList, getVariationOperatorListSize, performLevelVariations, setName
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_individualOwner

protected Individual _individualOwner
Constructor Detail

Element

public Element()

Element

public Element(java.lang.String __name,
               Individual __individualOwner,
               VariationOperator __elementLevelOperator)

Element

public Element(java.lang.String __name,
               Individual __individualOwner,
               java.util.ArrayList __elementLevelOperatorList)

Element

public Element(Individual __individualOwner,
               VariationOperator __elementLevelOperator)

Element

public Element(Individual __individualOwner,
               java.util.ArrayList __elementLevelOperatorList)
Method Detail

displayInformation

public void displayInformation()
Overrides:
displayInformation in class EvolutionObject

performVariations

public void performVariations()
Description copied from class: EvolutionObject
This method is called recursively from the entry point towards the smallest element (if any). smaller elements are variated first.

Specified by:
performVariations in class EvolutionObject

clone

public java.lang.Object clone()
Overrides:
clone in class java.lang.Object

getTemplate

public final ParameterSet getTemplate()

getOwner

public final Individual getOwner()

setOwner

public final void setOwner(Individual owner)

performInitialisation

public void performInitialisation()
Initialise this element -- this method may be overridden with an empty method if initialisation is performed elsewhere (see "Element_*array_*" classes) If a nullPointerException is thrown, that means EITHER : (1) operator was not set ... OR (2) this method should not be called (initialised elsewhere)

Specified by:
performInitialisation in interface InitialisationInterface

trace

public void trace()
Trace this elements - no return value. By default, this method performs nothing -- however, descendant classes may overwrite this method to perform user-specified code. e.g.: specific operator/terminal code for post-evaluation monitoring purpose. Note: careful when overwriting this method when considering cycle issues