org.biojavax.ga.functions
Class AbstractCrossOverFunction

java.lang.Object
  extended by org.biojava.utils.AbstractChangeable
      extended by org.biojavax.ga.functions.AbstractCrossOverFunction
All Implemented Interfaces:
Changeable, CrossOverFunction
Direct Known Subclasses:
OrderCrossover, SimpleCrossOverFunction

public abstract class AbstractCrossOverFunction
extends AbstractChangeable
implements CrossOverFunction

Abstract implementation of CrossOverFunction. All custom implementations should inherit from here.

Since:
1.5
Version:
1.0
Author:
Mark Schreiber

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.biojavax.ga.functions.CrossOverFunction
CrossOverFunction.NoCross
 
Field Summary
 
Fields inherited from interface org.biojavax.ga.functions.CrossOverFunction
CROSS_PROB, DEFAULT_CROSS_PROB, DEFAULT_MAX_CROSS, MAX_CROSSES, NO_CROSS
 
Constructor Summary
protected AbstractCrossOverFunction()
           
 
Method Summary
 double[] getCrossOverProbs()
           
 int getMaxCrossOvers()
           
 void setCrossOverProbs(double[] crossOverProbs)
          Sets the probability of crossing at each base.
 void setMaxCrossOvers(int maxCrossOvers)
          Sets an upper limit on the number of crosses.
 
Methods inherited from class org.biojava.utils.AbstractChangeable
addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.biojavax.ga.functions.CrossOverFunction
performCrossOver
 
Methods inherited from interface org.biojava.utils.Changeable
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
 

Constructor Detail

AbstractCrossOverFunction

protected AbstractCrossOverFunction()
Method Detail

setMaxCrossOvers

public final void setMaxCrossOvers(int maxCrossOvers)
                            throws ChangeVetoException
Description copied from interface: CrossOverFunction
Sets an upper limit on the number of crosses. Its up to the implementation to decide what to do when the limit is reached although a good convention would be to keep only the first N crosses from the left end (5' end) of the sequence. By convention the default upper limit is DEFAULT_MAX_CROSS (eg infinite). This value should be used as the default by all implementations.

Specified by:
setMaxCrossOvers in interface CrossOverFunction
Parameters:
maxCrossOvers - the limit on crosses
Throws:
ChangeVetoException - if a ChangeListener vetoes this change

getMaxCrossOvers

public final int getMaxCrossOvers()
Specified by:
getMaxCrossOvers in interface CrossOverFunction
Returns:
the limit on crosses.

setCrossOverProbs

public final void setCrossOverProbs(double[] crossOverProbs)
                             throws ChangeVetoException
Description copied from interface: CrossOverFunction
Sets the probability of crossing at each base. Each position in the array corresponds to a position in the sequences to be crossed. The probability of a cross occuring after position 1 in the SymbolList is given by crossOverProbs[1]. CrossOverProbs[0] is effectively redundant as the cross would occur before the 1st position in the SymbolList. By convention if the array is shorter than the SymbolList it is being applied to then the last value in the array will be applied to every subsequent residue. The default value in all implementations should be DEFAULT_CROSS_PROB

Specified by:
setCrossOverProbs in interface CrossOverFunction
Parameters:
crossOverProbs - an array of doubles giving the probability of a cross occuring at any place.
Throws:
ChangeVetoException

getCrossOverProbs

public final double[] getCrossOverProbs()
Specified by:
getCrossOverProbs in interface CrossOverFunction