|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jgap.impl.CompositeGene
Ordered container for multiple genes Has the same interface as a single gene and could be used accordingly. Use the addGene(Gene) method to add single genes (not CompositeGenes!) after construction, an empty CompositeGene without genes makes no sense. Beware that there are two equalities defined for a CompsoiteGene in respect to its contained genes: a) Two genes are (only) equal if they are identical b) Two genes are (seen as) equal if their equals method returns true This influences several methods such as addGene. Notice that it is "better" to use addGene(a_gene, false) than addGene(a_gene, true) because the second variant only allows to add genes not seen as equal to already added genes in respect to their equals function. But: the equals function returns true for two different DoubleGenes (e.g.) just after their creation. If no specific (and hopefully different) allele is set for these DoubleGenes they are seen as equal!
| Field Summary | |
static java.lang.String |
GENE_DELIMITER
This field separates gene class name from the gene persistent representation string. '*' does not work properly with URLEncoder, so I have changed it to '#' |
static java.lang.String |
GENE_DELIMITER_CLOSING
Represents the closing delimiter that is used to separate genes in the persistent representation of CompositeGene instances. |
static java.lang.String |
GENE_DELIMITER_HEADING
Represents the heading delimiter that is used to separate genes in the persistent representation of CompositeGene instances. |
| Fields inherited from interface org.jgap.Gene |
PERSISTENT_FIELD_DELIMITER |
| Constructor Summary | |
CompositeGene()
|
|
CompositeGene(Gene a_geneTypeAllowed)
Allows to specify which Gene implementation is allowed to be added to the CompositeGene. |
|
| Method Summary | |
void |
addGene(Gene a_gene)
|
void |
addGene(Gene a_gene,
boolean strict)
Adds a gene to the CompositeGene's container. |
void |
applyMutation(int index,
double a_percentage)
Don't use this method, is makes no sense here. |
void |
cleanup()
Executed by the genetic engine when this Gene instance is no longer needed and should perform any necessary resource cleanup. |
int |
compareTo(java.lang.Object other)
Compares this CompositeGene with the specified object for order. |
boolean |
containsGeneByIdentity(Gene gene)
Checks whether a specific gene is already contained. |
boolean |
equals(java.lang.Object other)
Compares this CompositeGene with the given object and returns true if the other object is a IntegerGene and has the same value (allele) as this IntegerGene. |
Gene |
geneAt(int index)
Returns the gene at the given index |
java.lang.Object |
getAllele()
Retrieves the value represented by this Gene. |
IGeneConstraintChecker |
getConstraintChecker()
|
java.lang.String |
getPersistentRepresentation()
See interface Gene for description |
boolean |
isEmpty()
|
Gene |
newGene()
Provides an implementation-independent means for creating new Gene instances. |
boolean |
removeGene(Gene gene)
Removes the given gene from the collection of genes. |
boolean |
removeGeneByIdentity(Gene gene)
Removes the given gene from the collection of genes. |
void |
setAllele(java.lang.Object a_newValue)
Sets the value of the contained Genes to the new given value. |
void |
setConstraintChecker(IGeneConstraintChecker a_constraintChecker)
Sets the constraint checker to be used for this gene whenever method setAllele(Object a_newValue) is called |
void |
setToRandomValue(RandomGenerator a_numberGenerator)
See interface Gene for description |
void |
setValueFromPersistentRepresentation(java.lang.String a_representation)
See interface Gene for description |
int |
size()
|
java.lang.String |
toString()
Retrieves a string representation of this CompositeGene's value that may be useful for display purposes. |
| Methods inherited from class java.lang.Object |
getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
public static final java.lang.String GENE_DELIMITER
public static final java.lang.String GENE_DELIMITER_HEADING
public static final java.lang.String GENE_DELIMITER_CLOSING
| Constructor Detail |
public CompositeGene()
public CompositeGene(Gene a_geneTypeAllowed)
a_geneTypeAllowed - the class of Genes to be allowed to be added to
the CompositeGene.| Method Detail |
public void addGene(Gene a_gene)
public void addGene(Gene a_gene,
boolean strict)
a_gene - the gene to be addedstrict - false: add the given gene except the gene itself already is
contained within the CompositeGene's container.
true: add the gene if there is no other gene being equal to the
given gene in request to the Gene's equals methodpublic boolean removeGeneByIdentity(Gene gene)
gene - the gene to be removed
public boolean removeGene(Gene gene)
gene - the gene to be removed
public void cleanup()
cleanup in interface Genepublic void setToRandomValue(RandomGenerator a_numberGenerator)
setToRandomValue in interface Genea_numberGenerator - The random number generator that should be
used to create any random values. It's important to use this
generator to maintain the user's flexibility to configure the genetic
engine to use the random number generator of their choice.
public void setValueFromPersistentRepresentation(java.lang.String a_representation)
throws UnsupportedRepresentationException
setValueFromPersistentRepresentation in interface Genea_representation - the string representation retrieved from a
prior call to the getPersistentRepresentation() method.
UnsupportedRepresentationException
public java.lang.String getPersistentRepresentation()
throws java.lang.UnsupportedOperationException
getPersistentRepresentation in interface Genejava.lang.UnsupportedOperationExceptionpublic java.lang.Object getAllele()
getAllele in interface Genepublic void setAllele(java.lang.Object a_newValue)
setAllele in interface Genea_newValue - the new value of this Gene instance.public void setConstraintChecker(IGeneConstraintChecker a_constraintChecker)
a_constraintChecker - the constraint checker to be setpublic IGeneConstraintChecker getConstraintChecker()
public Gene newGene()
It should be noted that nothing is guaranteed about the actual value of the returned Gene and it should therefore be considered to be undefined.
newGene in interface Genepublic int compareTo(java.lang.Object other)
compareTo in interface java.lang.Comparableother - the CompositeGene to be compared.
java.lang.ClassCastException - if the specified object's type prevents it
from being compared to this CompositeGene.public boolean equals(java.lang.Object other)
other - the object to compare to this IntegerGene for equality.
public java.lang.String toString()
toString in interface Genepublic boolean isEmpty()
public Gene geneAt(int index)
index - sic
public int size()
size in interface Genepublic boolean containsGeneByIdentity(Gene gene)
gene - the gene under test
public void applyMutation(int index,
double a_percentage)
applyMutation in interface Geneindex - does not matter herea_percentage - does not matter here
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||