|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.xml.sax.HandlerBase | +--org.concord.biologica.engine.EngineObject | +--org.concord.biologica.engine.GenotypeToPhenotypeRule
This class represents a rule for choosing a phenotype from a genotype.
In detail, an object of this class represents a statement of the form:
if
then <"then characteristic">
else <"else characteristic">
So the instance variables and properties of this class are named appropriately
(ifAlleles, thenCharacteristic, elseCharacteristic, etc.).
An object of this class will generate the following property change events:
EngineProp.DELETED
,
EngineProp.ELSE_CHARACTERISTIC
,
EngineProp.GENDER
,
EngineProp.ID
,
EngineProp.IF_SPECIES_ALLELE_ADDED
,
EngineProp.IF_SPECIES_ALLELE_REMOVED
,
EngineProp.LOCKED_STATE
,
EngineProp.NAME
,
EngineProp.THEN_CHARACTERISTIC
,
PropertyChangeListener
, Serialized Form
Fields inherited from class org.concord.biologica.engine.EngineObject |
AUTOMATIC_LOCKED, AUTOMATIC_LOCKED_STRING, changes, deleted, FALSE, id, lockedState, MANUAL_AND_AUTOMATIC_LOCKED, MANUAL_AND_AUTOMATIC_LOCKED_STRING, MANUAL_LOCKED, MANUAL_LOCKED_STRING, NULL_ID, TRUE, UNLOCKED, UNLOCKED_STRING, xmlElementContext |
Constructor Summary | |
GenotypeToPhenotypeRule(Species aSpecies,
java.lang.String aName)
Creates a new genotype to phenotype rule with the given name. |
|
GenotypeToPhenotypeRule(Species aSpecies,
java.lang.String aName,
GenotypeToPhenotypeRule aRule,
SpeciesAllele oldIfSpeciesAllele,
SpeciesAllele newIfSpeciesAllele)
Creates a new genotype to phenotype rule with the given name, an existing rule as a template and 2 species alleles. |
|
GenotypeToPhenotypeRule(Species aSpecies,
java.lang.String anElementName,
int anElementID,
com.sun.xml.parser.Parser anXMLParser,
ImportContext importContext)
Create a new genotype to phenotype rule and start handling XML parsing events to set the properties of this object. |
Method Summary | |
void |
addIfSpeciesAllele(SpeciesAllele anIfSpeciesAllele)
Adds an if species allele to this rule. |
void |
characters(char[] ch,
int start,
int length)
Receive notification of character data. |
boolean |
containsIfSpeciesAllele(SpeciesAllele anIfSpeciesAllele)
Return if the if species alleles contains the given species allele |
void |
delete()
Delete this object, notifying parent objects and deleting any child objects. |
void |
delete(boolean notifyChange)
|
void |
endElement(java.lang.String anElementName)
Handle notification that the parsing of the given element has ended. |
Characteristic |
getElseCharacteristic()
Return the else characteristic of this genotype to phenotype rule. |
int |
getGender()
Return the gender of this rule, which will be one of Species.FEMALE_AND_MALE, Species.FEMALE_ONLY or Species.MALE_ONLY. |
java.lang.String |
getGenderAsString()
Return the gender of this rule, which will be one of Species.FEMALE_AND_MALE_STRING, Species.FEMALE_ONLY_STRING or Species.MALE_ONLY_STRING. |
java.util.Enumeration |
getIfSpeciesAlleles()
Returns an enumeration over the rule's if species alleles. |
java.lang.String |
getName()
Return the name of this genotype to phenotype rule. |
int |
getNumberOfIfSpeciesAlleles()
Return the number of if species alleles of this rule. |
Species |
getSpecies()
Return the species of this genotype to phenotype rule. |
Characteristic |
getThenCharacteristic()
Return the then characteristic of this genotype to phenotype rule. |
World |
getWorld()
Get the world containing this object. |
void |
ignorableWhitespace(char[] ch,
int start,
int length)
Receive notification of ignorable white space character data. |
void |
propertyChange(java.beans.PropertyChangeEvent event)
Handle property change events, mostly DELETED events. |
void |
replaceIfSpeciesAllele(SpeciesAllele oldIfSpeciesAllele,
SpeciesAllele newIfSpeciesAllele)
Replace the given old if species allele with the given new if species allele. |
void |
setElseCharacteristic(Characteristic aCharacteristic)
Sets the else characteristic of this genotype to phenotype rule. |
void |
setGender(int aGender)
Set the gender of this genotype to phenotype rule. |
void |
setGenderAsString(java.lang.String aGenderString)
Set the gender of this genotype to phenotype rule. |
void |
setName(java.lang.String aName)
Sets the name. |
void |
setThenCharacteristic(Characteristic aCharacteristic)
Sets the then characteristic of this genotype to phenotype rule. |
void |
startElement(java.lang.String anElementName,
org.xml.sax.AttributeList amap)
Handle notification that the parser has hit the start of a new element with the given name and attributes. |
void |
test(int sex,
java.util.Vector speciesAlleles,
java.util.Vector characteristics,
java.util.Vector traits)
Test this rule given a sex, a set of species alleles and generating zero or one characteristic, which is placed on the given characteristics vector and its trait put on the traits UNLESS there is already another characteristic of that trait on the traits vector. |
java.lang.String |
toString()
Return a string representation of this object, usually the object's name. |
void |
writeToStream(java.io.PrintWriter stream)
Writes this object to the given stream in XML format. |
Methods inherited from class org.concord.biologica.engine.EngineObject |
addPropertyChangeListener, getID, getLockedState, getLockedStateAsString, isAutomaticLocked, isDeleted, isLocked, isManualLocked, notifySelected, release, removePropertyChangeListener, setAutomaticLocked, setID, setLockedState, setLockedStateAsString, setManualLocked |
Methods inherited from class org.xml.sax.HandlerBase |
endDocument, error, fatalError, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, startDocument, unparsedEntityDecl, warning |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public GenotypeToPhenotypeRule(Species aSpecies, java.lang.String aName)
aSpecies
- Species - the species containing this character, may not be nullaName
- String - name of this rule, may not be nulljava.lang.IllegalArgumentException
- - input argument(s) illegalpublic GenotypeToPhenotypeRule(Species aSpecies, java.lang.String aName, GenotypeToPhenotypeRule aRule, SpeciesAllele oldIfSpeciesAllele, SpeciesAllele newIfSpeciesAllele)
aSpecies
- Species - the species containing this rule, may not be nullaName
- String - name of this rule, may not be nullaRule
- GenotypeToPhenotypeRule - rule to copy, may not be nulloldIfSpeciesAllele
- SpeciesAllele - original if species allele, may not be nullnewIfSpeciesAllele
- SpeciesAllele - new if species allele, may not be nulljava.lang.IllegalArgumentException
- - input argument(s) illegalpublic GenotypeToPhenotypeRule(Species aSpecies, java.lang.String anElementName, int anElementID, com.sun.xml.parser.Parser anXMLParser, ImportContext importContext)
aSpecies
- Species - the enclosing species for this new genotype to phenotype ruleanElementName
- String - the element nameanElementID
- int - the element idanXMLParser
- com.sun.xml.parser.Parser - the element parserimportContext
- ImportContext - import context for mapping ids from file to this worldjava.lang.IllegalArgumentException
- - input arguments illegalMethod Detail |
public void startElement(java.lang.String anElementName, org.xml.sax.AttributeList amap) throws org.xml.sax.SAXException
For internal elements (elements that are non-EngineObject instance variables of this object), call xmlElementContext.startElement() and xmlElementContext will receive the remaining element notifications. For external elements (elements that are EngineObject instance variables of this object), create an object of the appropriate class and that object will receive the remaining element notifications.
startElement
in class org.xml.sax.HandlerBase
anElementName
- String - name of elementamap
- AttributeList - an attribute listpublic void characters(char[] ch, int start, int length) throws org.xml.sax.SAXException
characters
in class org.xml.sax.HandlerBase
ch
- char[] - charactersstart
- int - start of stringlength
- int - length of stringpublic void ignorableWhitespace(char[] ch, int start, int length) throws org.xml.sax.SAXException
ignorableWhitespace
in class org.xml.sax.HandlerBase
ch
- char[] - charactersstart
- int - start of stringlength
- int - length of stringpublic void endElement(java.lang.String anElementName) throws org.xml.sax.SAXException
endElement
in class org.xml.sax.HandlerBase
anElementName
- String - the element namepublic void delete()
When this method is successful, a property change event is generated for the property named EngineProp.DELETED.
delete
in class EngineObject
public void delete(boolean notifyChange)
public java.lang.String toString()
toString
in class EngineObject
public Species getSpecies()
public World getWorld()
getWorld
in class EngineObject
public java.lang.String getName()
public void setName(java.lang.String aName)
When this method is successful, a property change event is fired for the property named EngineProp.NAME.
aName
- String - rule name, may not be nulljava.lang.IllegalArgumentException
- - input argument illegalpublic int getGender()
Species.FEMALE_AND_MALE
,
Species.FEMALE_ONLY
,
Species.MALE_ONLY
public java.lang.String getGenderAsString()
Species.FEMALE_AND_MALE_STRING
,
Species.FEMALE_ONLY_STRING
,
Species.MALE_ONLY_STRING
public void setGender(int aGender)
The new gender must be one of Species.FEMALE_AND_MALE, Species.FEMALE_ONLY or Species.MALE_ONLY.
When this method is successful, a property change event is fired for the property named EngineProp.COLUMN_GENDER.
aGender
- int - the new gender of this rulejava.lang.IllegalArgumentException
- - input argument illegalObjectDeletedException
- - object is deleted and cannot be modifiedObjectLockedException
- - object is locked and cannot be modifiedSpecies.FEMALE_AND_MALE
,
Species.FEMALE_ONLY
,
Species.MALE_ONLY
public void setGenderAsString(java.lang.String aGenderString)
The new gender must be one of Species.FEMALE_AND_MALE_STRING, Species.FEMALE_ONLY_STRING or Species.MALE_ONLY_STRING.
When this method is successful, a property change event is fired for the property named EngineProp.COLUMN_GENDER.
aGenderString
- String - the new gender of this rule as a stringjava.lang.IllegalArgumentException
- - input argument illegalObjectDeletedException
- - object is deleted and cannot be modifiedObjectLockedException
- - object is locked and cannot be modifiedSpecies.FEMALE_AND_MALE_STRING
,
Species.FEMALE_ONLY_STRING
,
Species.MALE_ONLY_STRING
public java.util.Enumeration getIfSpeciesAlleles()
If there are no if species alleles in this rule, an enumeration with no elements is returned.
public boolean containsIfSpeciesAllele(SpeciesAllele anIfSpeciesAllele)
anIfSpeciesAllele
- SpeciesAllele - an if species allele, may not be nulljava.lang.IllegalArgumentException
- - input argument(s) illegalpublic int getNumberOfIfSpeciesAlleles()
public void addIfSpeciesAllele(SpeciesAllele anIfSpeciesAllele)
anIfSpeciesAllele
- SpeciesAllele - the allele to add to this rule, may not be nulljava.lang.IllegalArgumentException
- - input argument(s) illegalObjectDeletedException
- - object is deleted and cannot be modifiedObjectLockedException
- - object is locked and cannot be deletedpublic void replaceIfSpeciesAllele(SpeciesAllele oldIfSpeciesAllele, SpeciesAllele newIfSpeciesAllele)
If the oldIfSpeciesAllele is null or not found, then we just add the newIfSpeciesAllele on to the end of the list of ifSpeciesAlleles.
If the newIfSpeciesAllele is null, then we just remove the oldIfSpeciesAllele.
If both the oldIfSpeciesAllele and the newIfSpeciesAllele are null or not found, do nothing.
SpeciesAllele
- oldIfSpeciesAllele - if species allele to remove, may be nullSpeciesAllele
- newIfSpeciesAllele - if species allele to add, may be nullpublic Characteristic getThenCharacteristic()
public void setThenCharacteristic(Characteristic aCharacteristic)
When this method is successful, a property change event is fired for the property named EngineProp.THEN_CHARACTERISTIC.
aCharacteristic
- Characteristic - new then characteristic, may be nulljava.lang.IllegalArgumentException
- - input argument illegalpublic Characteristic getElseCharacteristic()
public void setElseCharacteristic(Characteristic aCharacteristic)
When this method is successful, a property change event is fired for the property named EngineProp.ELSE_CHARACTERISTIC.
aCharacteristic
- Characteristic - new else characteristic, may be nulljava.lang.IllegalArgumentException
- - input argument illegalpublic void test(int sex, java.util.Vector speciesAlleles, java.util.Vector characteristics, java.util.Vector traits)
sex
- int - sex of organism - Organism.MALE, Organism.FEMALE or Organism.NO_SEXspeciesAlleles
- Vector - species alleles vectorcharacteristics
- Vector - characteristics vectortraits
- Vector - traits vectorpublic void propertyChange(java.beans.PropertyChangeEvent event)
propertyChange
in interface java.beans.PropertyChangeListener
event
- PropertyChangeEvent - the property change eventpublic void writeToStream(java.io.PrintWriter stream) throws java.io.IOException
We could supply a default implementation that knows how to write the id value. But that convenience is not chosen because it's never correct to use just this implementation of these methods, so I'd rather have a compilation fail if a derived class fails to implement this method.
The inverse of this method is a constructor that takes a org.xml.sax.Parser argument and other arguments.
writeToStream
in class EngineObject
stream
- PrintWriter - print streamjava.lang.IllegalArgumentException
- - input arguments illegaljava.io.IOException
- - an IO error occurred in java libraries
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |