com.objex.panywhere
Class Individual

java.lang.Object
  extended by com.objex.panywhere.Individual
All Implemented Interfaces:
RelationshipConstants, java.io.Serializable

public class Individual
extends java.lang.Object
implements RelationshipConstants, java.io.Serializable

Class describes the properties of an Individual object which is part of a family within a Pedigree. Every Individual must at the minimum, must have knowledge of its direct relatives and also have the ability to search and find direct and not so direct relatives such as ancestors and uncles. The Individual class also includes properties that will be used by the PedigreeViewer to paint Individual Icons on the Pedigree surface.

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface com.objex.panywhere.RelationshipConstants
BROTHER, DAUGHTER, FATHER, FEMALE_GENDER, MALE_GENDER, MOTHER, SISTER, SON, SPOUSE, TWINBROTHER, TWINSISTER, UNKNOWN_GENDER
 
Constructor Summary
Individual()
          Creates new Individual.
Individual(double x, double y)
          Creates an Individual whose initial location on the Pedigree is specified by xy coordinates.
Individual(double x, double y, java.lang.String upn, java.lang.String fid, java.lang.String mid, java.lang.String gender)
          Creates an Individual with specified UPN, father ID, mother ID, gender and location.
Individual(Individual ao_father, Individual ao_mother)
          Creates an individual whose father and mother are specified.
Individual(java.lang.String upn, java.lang.String fid, java.lang.String mid, java.lang.String gender)
          Creates an Individual with specified UPN, father ID, mother ID and gender.
 
Method Summary
 void addChild(Individual as_relative, java.lang.String as_relationship)
          Connects "as_relative" to this Individual as a child.
 void addFather(Individual as_relative, java.lang.String as_relationship)
          Connects "as_relative" to this Individual as a father.
 void addMother(Individual as_relative, java.lang.String as_relationship)
          Connects "as_relative" to this Individual as a mother.
 void addPropertyChangeListener(java.beans.PropertyChangeListener lstnr)
          Allows this Bean to register for property change events
 void addSibling(Individual as_relative, java.lang.String as_relationship)
          Connects this Individual to "as_relative" as siblings.
 void addSpouse(Individual as_relative, java.lang.String as_relationship)
          Connects "as_relative" to this Individual as a spouse.
 java.lang.String ancestors(boolean includeAdopted)
          Gets a semi-colon delimited list of Unique Person Numbers (UPN's) for all ancestors of this Individual
 Individual cloneInd()
          Creates a new Individual whose primitive properties (non object properies) are copied from this Individual.
 Individual cloneInd(java.lang.String newupn)
          Clone and return a new Individual with the UPN supplied.
 void deleteself()
          Disconnects this Individual from all his/her direct relatives (Siblings, Parents and Kids and SPouses) by removing this Individual from their relationship tables.
 java.lang.String findMatchingAncestor(java.awt.Paint matchcol, java.lang.String markername, Allele allele)
          Finds an ancestor from whom the specified Allele could possibly have been inherited.
 int getAdjustedGeneration(int oldestgen)
           
 Individual getAncestor()
           
 int getAncestorDOR()
          Determines the degree of relation from this Individual to furthest known ancestor.
 Individual getAnykid()
          Gets any one Individual who is this Individual's child
 Individual getAnykid(Individual as_spouse)
          Gets any one child / kid shared between this Individual and specified spouse.
 java.lang.String getAnysibling()
           
 java.awt.geom.Line2D getChildline()
           
 RelationshipLine getChildlineRL()
          Getter for property childlineRL.
 java.util.Vector getChildren()
           
 java.util.Vector getChildren(Individual as_spouse, PedigreeComparator aComparator)
           
 Chromosome getChromosome()
          Getter for property chromosome.
 Data getData(int ai_fieldid)
           
 Data getData(java.lang.String fieldname)
          Deprecated. Retrieves the field value for an item with the specified field name.
 java.util.Map<java.lang.Integer,Data> getDataitems()
          Getter for property dataitems.
 java.lang.String getExternalkey()
          Getter for property externalkey.
 java.lang.String getFamilyID()
           
 Individual getFather()
           
 java.lang.String getFatherid()
           
 java.lang.String getFirstName()
           
 java.lang.String getGender()
           
 int getGeneration()
           
 java.lang.String getIconsubtext()
          The current Iconsubtext string.
 java.lang.String[] getIconSubtext(SubtextLegend aLegend, DataDictionary aDict)
           
 java.lang.String getIcontext()
           
 Individual getKid(java.lang.String as_upn)
          Retrieves an Individual whose UPN equals the supplied parameter and is a child of this Individual
 java.util.Hashtable getKids()
           
 java.util.Vector getKids(Individual as_spouse)
          Deprecated.  
 java.lang.String getLastName()
           
 Individual getLeftkid(Individual as_spouse)
          Finds a child of this Individual's whose X-Coordinate is the leftmost in the decreasing X-direction on the Pedigree space
 Individual getLeftMostSibling()
           
 Individual getLeftMostTwin()
           
 java.lang.String getMarkedby()
           
 Individual getMother()
           
 java.lang.String getMotherid()
           
 java.awt.geom.Line2D getParentline(Individual as_person)
          Returns the current parent relationship line between this Individual and the specified spouse.
 java.util.Hashtable getParentlines()
           
static Individual getProband()
          Returns a reference to the Individual who is the proband for the Family .
 java.util.Hashtable getRelationships()
           
 Individual getRelative(java.lang.String as_upn)
          Retrieves this Individual's relative whose UPN is specified.
 java.util.Vector getRelatives(java.lang.String as_relationship)
          Deprecated. Returns a Vector of UPN's of this Individual's relatives as determined by the relationship string passed in parameters "a_relationship".
 java.util.Vector getRelatives(java.lang.String as_relationship, PedigreeComparator aComparator)
          Returns a Vector of UPN's of this Individual's relatives as determined by the relationship string passed in parameters "a_relationship".
 java.util.Vector getRelatives(java.lang.String as_relationship1, java.lang.String as_relationship2)
          Deprecated. Returns a Vector of UPN's of this Individual's relatives as determined by the relationship string passed in parameters "a_relationship1" and "as_relationship2". Only Sons and Daughters or Brothers and Sisters can be retrieved this way.
 java.util.Vector getRelatives(java.lang.String as_relationship1, java.lang.String as_relationship2, PedigreeComparator aComparator)
          Returns a Vector of UPN's of this Individual's relatives as determined by the relationship string passed in parameters "a_relationship1" and "as_relationship2".
 Individual getRightkid(Individual as_spouse)
          Returns a child of this Individual's whose X-Coordinate is the rightmost in the increasing X-direction on the Pedigree space
 Individual getRightMostSibling()
           
 Individual getRightMostTwin()
           
 java.lang.String getShadowupn()
          Getter for property shadowupn.
 java.awt.geom.Line2D getSiblingline()
          Fetch and return a line2d object rep's the sibling line for this Individual
 RelationshipLine getSiblinglineRL()
          Getter for property siblinglineRL.
 java.util.Hashtable getSiblings()
           
 Individual getSpouse()
           
 java.util.Hashtable getSpouseindex()
           
 java.awt.geom.Line2D getSpouseline(Individual as_person)
          Returns a Line2D object representing the spouse relationship line between this Individual and specified spouse.
 java.util.Hashtable getSpouselines()
           
 java.util.Hashtable getSpouses()
           
 Subtext getSubtext()
           
 Symbol getSymbol()
          Retrieves the current symbol object.
 java.lang.String getTag()
           
 java.lang.String getTree()
          Returns the Tree ID of this Individual.
 java.util.Hashtable getTwinindex()
           
 java.awt.geom.Line2D getTwinline()
           
 RelationshipLine getTwinlineRL()
          Getter for property twinlineRL.
 java.util.Vector getTwins()
          Returns a Vector of UPN's for Individuals who may be twins or quadruplets of current individual.
 java.lang.String getUpn()
           
 double getX()
           
 double getXcoordinate()
           
 double getY()
           
 double getYcoordinate()
           
 boolean hasBothparents()
           
 boolean hasKids()
           
 boolean hasOneparent()
           
 boolean hasParents()
           
 boolean hasSiblings()
           
 boolean hasSpouses()
           
 int indexOf(Individual ind, int direction, int count, boolean found, boolean falldown, boolean didfalldown, boolean includeAdopted)
          Returns the degree of relation of Individual "ind" from this Individual or -1 if they are not relatives.
 java.lang.String inheritedHaplotype(Individual parent)
           
 boolean isAdopted()
          Determines if Individual is adopted or not.
 boolean isAdoptedIn()
          Determines if Individual is adopted in or not
 boolean isAdoptedOut()
          Determines if Individual is adopted out or not
 boolean isAncestorOf(Individual as_grantchild, boolean includeAdopted)
          Returns true if this Individual is ancestor of "as_grandchild"
 boolean isAuntOf(Individual ind, boolean includeAdopted)
          Returns true if this Individual is an Aunt of "ind".
 boolean isCasual(Individual as_spouse)
          Returns the "Casual" status of this Individual's relationship with specified spouse.
 boolean isChanged()
          Not used
 boolean isConsanguineous(Individual as_spouse)
          Returns the Consanguineous status of this Individual's relationship with specified spouse.
 boolean isDeceased()
           
 boolean isDivorced(Individual as_spouse)
          Returns the Divorced status of this Individual's relationship with specified spouse.
 boolean isDizygotic()
          Getter for property dizygotic.
 boolean isFemale()
           
 boolean isGenderunknown()
          Retrieves the unknown gender status of this Individual.
 boolean isHalfBrother(Individual ind)
           
 boolean isHalfSister(Individual ind)
           
 boolean isHighlighted()
           
 boolean isInfertile()
          Returns the infertifility indicator for an Individual
 boolean isInfertile(Individual as_spouse)
          Returns the infertility Indicator for the Relationship between this Individual and his spouse.
 boolean isKidOf(Individual as_person)
           
 boolean isMale()
           
 boolean isMarried(Individual as_spouse)
          Returns the "Married" or "Normal" status of this Individual's relationship with specified spouse.
 boolean isMonozygotic()
          Getter for property monozygotic.
 boolean isNoissue()
           
 boolean isNoissue(Individual as_spouse)
          Returns the "No Issue" status of the this Individual's relationship with specified spouse.
 boolean isOwnparent()
          Reserved for ver1.1 True of this Individual has is his own parent (plants will do this )
 boolean isParentOf(Individual kid, boolean includeAdopted)
          Returns true If this Individual is a parent to "kid"
 boolean isProband()
           
 boolean isRelativeOf(Individual ind, boolean includeAdopted)
           
 boolean isSAB()
           
 boolean isSeparated(Individual as_spouse)
          Returns the Separated status of this Individual's relationship with specified spouse.
 boolean isShadow()
           
 boolean isSiblingOf(Individual as_person, boolean includeAdopted)
          Determines if current Individual is a sibling of the specified Individual
 boolean isSpouseOf(Individual as_person)
           
 boolean isTraversed()
           
 boolean isTwin()
           
 boolean isTwinOf(Individual twin)
          Returns true if the Individual "twin" is a twin one of this Individual
 boolean isTwintypeunknown()
          Getter for property twintypeunknown.
 boolean isUncleOf(Individual ind, boolean includeAdopted)
          Returns true if this Individual is an Uncle of "ind".
 java.util.Vector myAncestors(boolean includeAdopted)
          Returns a vector whose elements are Individual objects being ancestors of this person
 java.util.Vector myAncestors(int degree, boolean includeAdopted)
          Retrievs a list of ancestors fo this Individual whose degree of relation from this Individual is as specified
 java.util.Vector myDescendants(boolean includeAdopted)
          Recursive lookup of all descendants of this Individual.
 java.util.Vector myDescendants(int degree, boolean includeAdopted)
          Returns a vector with all descendants of this Individual followed down to the specified degree of relation.
 java.lang.String myGeneration()
           
 java.util.Vector myRelatives(int degree, int direction, int count, boolean falldown, boolean didfalldown, boolean includeAdopted)
          Finds and returns all relatives this Individual who are at the specified degree of relation from this Individual.
 java.util.Vector mySiblings(boolean includeAdopted)
           
 java.util.Vector myUncles(boolean includeAdopted)
          Returns a list Individuals who are indirect Ancestors (Aunts and Uncles) of this Individual.
 int numKids()
           
 int numKids(Individual as_spouse)
           
 int numSiblings()
           
 int numSpouses()
           
 java.lang.String passedHaplotype(Individual child)
           
 void removePropertyChangeListener(java.beans.PropertyChangeListener lstnr)
          Allows this Bean to de-register for property change events
static void resetOldestGeneration()
          Resets the oldest generation to its default value.
static void resetYoungestGeneration()
          Resets the generation of the youngest Individual in this family/pedigree.
 void setAdopted(boolean rhs)
          Sets or unsets the adopted status of this Individual.
 void setAdoptedIn(boolean rhs)
          Sets or unsets the adoption status of this Individual
 void setAdoptedOut(boolean rhs)
          Sets or unsets the adoption status of this Individual.
 void setCasual(Individual as_spouse, boolean casual)
          Sets or unsets the spouse "Casual Status" of the relationship between this Individual and specified spouse.
 void setChanged(boolean ab_changed)
          Not Used
 void setChildline(java.awt.geom.Line2D as_line)
          Sets child line for this Individual to the specified value
 void setChildlineRL(RelationshipLine childlineRL)
          Setter for property childlineRL.
 void setChromosome(Chromosome rhs)
          Setter for property chromosome.
 void setConsanguineous(Individual as_spouse, boolean incest)
          Sets or unsets the "Consanguineous" status of this Individual's relationship with specified spouse.
 void setData(Data data)
          Adds the specified data item to the Individual database using the specified field name as the column heading or fieldname.
 void setData(java.lang.String fieldname, Data data)
          Deprecated. Adds the specified data item to the Individual database using the specified field name as the column heading or fieldname. If data exists in this field already, it will be overitten without warning.
 void setDataitems(java.util.Map<java.lang.Integer,Data> rhs)
          Setter for property dataitems.
 void setDeceased(boolean rhs)
          Set or unsets the deceased status for this individual to deceased or alive.
 void setDivorced(Individual as_spouse, boolean d)
          Sets or unsets the "Divorced" status of this Individual's relationship with specified spouse.
 void setDizygotic(boolean rhs)
          Setter for property dizygotic.
 void setExternalkey(java.lang.String externalkey)
          Setter for property externalkey.
 void setFamilyID(java.lang.String rhs)
          Sets the family ID of this Individual to supplied text string.
 void setFather(Individual pa)
          Sets Individual "pa" as the father of this Individual.
 void setFatherid(java.lang.String rhs)
          Sets the FatherID of this Individual to supplied value.
 void setFirstName(java.lang.String fname)
          Sets the 1st name of the Individual to value .
 void setGender(java.lang.String rhs)
          Sets the Gender of this Individual to supplied String.
 void setGenderunknown(boolean rhs)
          Sets or unsets the unknown gender property.
 void setGeneration(int rhs)
          Sets this Individual's generation to value specified.
 void setHighlighted(boolean rhs)
          Sets or unsets the hilighted status of the Individual.
 void setIconsubtext(java.lang.String subtext)
          Sets the Iconsubtext property.
 void setIcontext(java.lang.String text)
          Sets the Icontext property to specified value.
 void setInfertile(boolean fertile)
          Sets the infertility indicator for this Individual
 void setInfertile(Individual as_spouse, boolean fertile)
          Sets the infertility Indicator for the Relationship between this Individual and specified spouse.
 void setKids(java.util.Hashtable rhs)
          Assigns the Individual's kids relationships to the supplied hashmap.
 void setLastName(java.lang.String rhs)
          Sets the last name of the Individual to value .
 void setMarkedby(java.lang.String marker)
          Sets the marker text for this Individual.
 void setMarried(Individual as_spouse, boolean normal)
          Sets or unsets the "Married" status of this Individual's relationship with specified spouse.
 void setMonozygotic(boolean rhs)
          Setter for property monozygotic.
 void setMother(Individual ma)
          Sets Individual "ma" as the mother of this Individual.
 void setMotherid(java.lang.String rhs)
          Sets the MotherID of this Individual to supplied UPN
 void setNoissue(boolean rhs)
          Sets or usets the "No Issue" status of an Individual.
 void setNoissue(Individual as_spouse, boolean ni)
          Sets or unsets the relationship between this Individual and specified spouse as a "No Issue" type relatiosnhip A relationship is considered as "No Issue" if the two Individuals may not have kids together.
 void setParentlines(java.util.Hashtable rhs)
          Sets this Individual's parent relationship lines container to specified hashmap.
 void setPoint(double xc, double yc)
          Sets the current location of an Individual object to supplied xy coordinates.
 boolean setProband(boolean rhs)
          Sets or usets the proband status of an Individual.
 void setQuadrant(int quadrant, int qColorRGB)
          Sets the color for a specified quantrant of this Individual's Symbol object to the specified value.
 void setRelationships(java.util.Hashtable rhs)
          Assigns the Individual's relationships container to the supplied hashmap.
 void setSAB(boolean rhs)
          Sets or usets the SAB status of an Individual.
 void setSeparated(Individual as_spouse, boolean s)
          Sets or unsets the "Separated" status of this Individual's relationship with specified spouse.
 void setShadow(boolean rhs)
          Sets or unsets the boolean flag indicating whether or not this Individual is a shadow or not.
 void setShadowupn(java.lang.String rhs)
          Setter for property shadowupn.
 void setSiblingline(java.awt.geom.Line2D as_line)
          Sets the sibling line for this Individual to supplied line2D object
 void setSiblinglineRL(RelationshipLine siblinglineRL)
          Setter for property siblinglineRL.
 void setSiblings(java.util.Hashtable rhs)
          Assigns the Individual's siblings relationships index to the supplied hashmap contents.
 void setSpouse(Individual sp)
          Sets the main spouse reference for this Individual.
 void setSpouseindex(java.util.Hashtable rhs)
          Assigns the spouse relationship table to specified hashmap.
 void setSpouselines(java.util.Hashtable rhs)
          Sets this Individual's spouse relationship lines property.
 void setSpouses(java.util.Hashtable rhs)
          Assigns the Individual's spouses relationships container to the supplied hashmap.
 void setSubtext(Subtext aSubtext)
          Sets the new Subtext object for this Individual
 void setSymbol(Symbol sym)
          Assigns this Individual's symbol object to the supplied object.
 void setTag(java.lang.String rhs)
          Sets the tag property value to supplied string
 void setTraversed(boolean rhs)
          Set a marker flag to true of false.
 void setTree(java.lang.String rhs)
          Sets the Tree ID of this Individual to supplied text string.
 void setTwinindex(java.util.Hashtable rhs)
          Assigns the twin relationship table to specified hashmap
 void setTwinline(java.awt.geom.Line2D as_line)
          Sets twin line property for this Individual
 void setTwinlineRL(RelationshipLine twinlineRL)
          Setter for property twinlineRL.
 void setTwins(Individual as_relative, java.lang.String as_relationship)
          Add a twin (triplet or quadruplet) brother or sister to this Individual.
 void setTwintypeunknown(boolean rhs)
          Setter for property twintypeunknown.
 void setUpn(int rhs)
          Sets the Unique Number for this Individual to supplied value
 void setUpn(java.lang.String rhs)
          Sets the Unique Number for this Individual to supplied value
 void setX(double xc)
          Sets the X-Coordinate for this Individual's Icon
 void setXcoordinate(double x)
          Sets the X coordinate position at which this Individual's Icon will be drawn.
 void setY(double yc)
          Sets the Y-Coordinate for this Individual's Icon
 void setYcoordinate(double y)
          Sets the Y coordinate position at which this Individual's Icon will be drawn.
 void updateSubtext(SubtextLegend aLegend, DataDictionary aDict)
          This method must be called whenever the subtext for the Individual needs to be update before the next painting of the Pedigre is done.
 void updateSymbol(Legend aLegend)
          This method must be called whenever the symbols for the Individual needs to be update before the next painting of the Pedigre is done.
 void updateSymbol(LegendItem aLegendItem, boolean ab_unassign)
          This method must be called whenever the symbols for the Individual needs to be update before the next painting of the Pedigre is done.
 void updateSymbol(LegendItem aLegendItem, boolean ab_unassign, boolean ab_symbol_linkedtodata)
          Deprecated.  
 void updateSymbol(long al_symbol)
          Updates Individual's symbol object by decoding the Long Integer passed as parameter.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Individual

public Individual()
           throws java.lang.Exception
Creates new Individual. All properties are set to default values.

Throws:
java.lang.Exception - If there was an error in creating the Individual.

Individual

public Individual(Individual ao_father,
                  Individual ao_mother)
           throws java.lang.Exception
Creates an individual whose father and mother are specified.

Parameters:
ao_father - The Individual's father
ao_mother - The Individual's mother
Throws:
java.lang.Exception - If there was an error in creating the Individual.

Individual

public Individual(java.lang.String upn,
                  java.lang.String fid,
                  java.lang.String mid,
                  java.lang.String gender)
           throws java.lang.Exception
Creates an Individual with specified UPN, father ID, mother ID and gender.

Parameters:
upn - A Unique Number for the new Individual
fid - The UPN of Individual's father
mid - The UPN of Individual's mother
gender - The gender status of new Individual
Throws:
java.lang.Exception - If there was an error in creating the Individual.

Individual

public Individual(double x,
                  double y)
           throws java.lang.Exception
Creates an Individual whose initial location on the Pedigree is specified by xy coordinates.

Parameters:
x - The X position for new Individual
y - The Y position for new Individual
Throws:
java.lang.Exception - If there was an error in creating the Individual.

Individual

public Individual(double x,
                  double y,
                  java.lang.String upn,
                  java.lang.String fid,
                  java.lang.String mid,
                  java.lang.String gender)
           throws java.lang.Exception
Creates an Individual with specified UPN, father ID, mother ID, gender and location. I

Parameters:
x - The X position for new Individual
y - The Y position for new Individual
upn - Unique Number for the new Individual
fid - The UPN of Individual's father
mid - The UPN of the Individual's mother
gender - The gender of the new Individual
Throws:
java.lang.Exception - If there was an error in creating the Individual.
Method Detail

cloneInd

public Individual cloneInd()
                    throws java.lang.Exception
Creates a new Individual whose primitive properties (non object properies) are copied from this Individual. All non primitive properties except Symbol, Chromosome, dataItems, Father, Mother and Main Spouse are not copied but are instead set to null values. All Individuals are created with a default generation of "999999".

Returns:
A new Individual whose properties are similar to this Individual.
Throws:
java.lang.Exception - if there is a problem with the cloning / copying operation

cloneInd

public Individual cloneInd(java.lang.String newupn)
                    throws java.lang.Exception
Clone and return a new Individual with the UPN supplied. No relationships are copied as a result of this cloning operation.

Parameters:
newupn - The new UPN for the cloned Individual
Returns:
A new Individual whose properties are similar to this Individual except for non-primitive properties such as relationships pointers. Symbols and quadrants are however copied. Null is returned if the cloning operation failed for some reason.
Throws:
java.lang.Exception - if there is a problem with the cloning / copying operation
Since:
ver1.01 To include the cloning of the Chromsome and dataitems fields

getData

public Data getData(int ai_fieldid)
Parameters:
ai_fieldid - The fieldid that corresponds to a database field for which data has been loaded into this Individual object.
Returns:
The data item for the specified data fieldid

getIconSubtext

public java.lang.String[] getIconSubtext(SubtextLegend aLegend,
                                         DataDictionary aDict)
Parameters:
aLegend - The Progeny Anywhere control's SubtextLegend containing the SubtextLegendItems that may be assigned to this Individual's Subtext based on a pre-set list of conditions that must be satisfied by the this Individual.
aDict - The data dictionary from which the fields making up the Data for the individuals are derived
Returns:
An array of subtext lines if this Individual has any otherwise an empty array

updateSubtext

public void updateSubtext(SubtextLegend aLegend,
                          DataDictionary aDict)
This method must be called whenever the subtext for the Individual needs to be update before the next painting of the Pedigre is done. This should typically be done during during smartDraw or whenever the SubtextLegend has changed. This is a faily expensive operation and must be optimized at all costs. Adding a listener for when the SubtextLegend has changed is usually a good signal for when to execute this operation on all Individuals in the Pedigree.

Parameters:
aLegend - The Progeny Anywhere control's SubtextLegend containing the SubtextLegendItems that may be assigned to this Individual's Subtext based on a pre-set list of conditions that must be satisfied by the this Individual.
aDict - The data dictionary from which the fields making up the Data for the individuals are derived

updateSymbol

public void updateSymbol(Legend aLegend)
This method must be called whenever the symbols for the Individual needs to be update before the next painting of the Pedigre is done. This should typically be done during during smartDraw or whenever the Symbols Legend has changed. This is a faily expensive operation and must be optimized at all costs. Adding a listener for when the Symbols Legend has changed is usually a good signal for when to execute this operation on all Individuals in the Pedigree.

Parameters:
aLegend - The Progeny Anywhere control's Legend containing the LegendItems that may be assigned to this Individual's Symbol based on a pre-set list of conditions that must be satisfied by the this Individual.

updateSymbol

public void updateSymbol(LegendItem aLegendItem,
                         boolean ab_unassign)
This method must be called whenever the symbols for the Individual needs to be update before the next painting of the Pedigre is done. This should typically be done during during smartDraw or whenever the Symbols Legend has changed. This is a faily expensive operation and must be optimized at all costs. Adding a listener for when the Symbols Legend has changed is usually a good signal for when to execute this operation on all Individuals in the Pedigree.

Parameters:
aLegendItem - The item to be assigned or unassigned from this Individual's Symbol
ab_unassign - If true, the legend item was removed otherwise it would have been added and/or changed

updateSymbol

public void updateSymbol(LegendItem aLegendItem,
                         boolean ab_unassign,
                         boolean ab_symbol_linkedtodata)
Deprecated. 

This method must be called whenever the symbols for the Individual needs to be update before the next painting of the Pedigre is done. This should typically be done during during smartDraw or whenever the Symbols Legend has changed. This is a faily expensive operation and must be optimized at all costs. Adding a listener for when the Symbols Legend has changed is usually a good signal for when to execute this operation on all Individuals in the Pedigree.

Parameters:
aLegendItem - The item to be assigned or unassigned from this Individual's Symbol
ab_unassign - If true, the legend item was removed otherwise it would have been added and/or changed
ab_symbol_linkedtodata - If TRUE then the symbol will only be updated if the set of conditions laid out on the LegendItem are fully satisfied by the corresponding data items for this Individual.

addPropertyChangeListener

public void addPropertyChangeListener(java.beans.PropertyChangeListener lstnr)
Allows this Bean to register for property change events


removePropertyChangeListener

public void removePropertyChangeListener(java.beans.PropertyChangeListener lstnr)
Allows this Bean to de-register for property change events


setAdoptedIn

public void setAdoptedIn(boolean rhs)
Sets or unsets the adoption status of this Individual

Parameters:
rhs - Boolean indicating whether the Individual is adopted into another family. The system differntiates between an Individual who is adopted into the Family , which means that you may not trace his/her genetics going up the family tree, and an Individual who is adopted out to another Family, which means that his genetics can be traced up the family tree.

setAdoptedOut

public void setAdoptedOut(boolean rhs)
Sets or unsets the adoption status of this Individual.

Parameters:
rhs - Boolean indicating whether the Individual is adopted out to another family. The system differntiates between an Individual who is adopted into the Family , which means that you may not trace his/her genetics going up the family tree, and an Individual who is adopted out to another Family, which means that his genetics can be traced up the family tree.

isAdoptedIn

public boolean isAdoptedIn()
Determines if Individual is adopted in or not

Returns:
True If the this Individual is Adopted in from another Family, False otherwise. The system differntiates between an Individual who is adopted into the Family , which means that you may not trace his/her genetics going up the family tree, and an Individual who is adopted out to another Family, which means that his genetics can be traced up the family tree.

isAdoptedOut

public boolean isAdoptedOut()
Determines if Individual is adopted out or not

Returns:
True If the this Individual is Adopted out to another Family, False otherwise. The system differntiates between an Individual who is adopted into the Family , which means that you may not trace his/her genetics going up the family tree, and an Individual who is adopted out to another Family, which means that his genetics can be traced up the family tree.

setGenderunknown

public void setGenderunknown(boolean rhs)
Sets or unsets the unknown gender property. An Individual whose gender is set to unknown is rendered differently than an Individual whose status is set to false. In either case, the underlying gender of the Individual will be either male or female but can be changed one way or the other depending on whether the Individual has spousal relationships or has children.

Parameters:
rhs - The new boolean indicating whether the Individual's unknown gender status

isGenderunknown

public boolean isGenderunknown()
Retrieves the unknown gender status of this Individual. An Individual whose gender is set to unknown is rendered differently than an Individual whose status is set to false. In either case, the underlying gender of the Individual will be either male or female but can be changed one way or the other depending on whether the Individual has spousal relationships or has children.

Returns:
True if the this gendederunknown status is set and false otherwise

setSymbol

public void setSymbol(Symbol sym)
Assigns this Individual's symbol object to the supplied object. The Icon for this Individual will be drawn / decorated and /or painted using the color coding schemes defined by the Symbol object. Both quadrants and Symbols (as defined in Progeny5) are contained in this symbol object and the system uses code/decode algorithms to determine which parts of the symbols are qaudrants and which parts are Symbols also as defined in Progeny5.

Parameters:
sym - The new Symbol object to assign

getSymbol

public Symbol getSymbol()
Retrieves the current symbol object. The Icon for this Individual will be drawn / decorated and /or painted using the color coding schemes defined by the Symbol object. Both quadrants and Symbols (as defined in Progeny5) are contained in this symbol object and the system uses code/decode algorithms to determine which parts of the symbols are qaudrants and which parts are Symbols also as defined in Progeny5.

Returns:
The Symbol object for this Individual

updateSymbol

public void updateSymbol(long al_symbol)
Updates Individual's symbol object by decoding the Long Integer passed as parameter. The symbol's new color scheme will be defined by decoding the bit segments of the 32 bit Long integer as described below.

BITSITEM VALUE
------------------- -----------------
1-3Quadrant 1 color See “colors” below
4-6Quadrant 2 color See “colors” below
7-9 Quadrant 3 color See “colors” below
10-12Quadrant 4 color See “colors” below
13-15Center circle color See “colors” below
16-18 Center square color See “colors” below
19 Show quadrant 1 1=show 0=hide
20 Show quadrant 2 1=show 0=hide
21 Show quadrant 3 1=show 0=hide
22Show quadrant 4 1=show 0=hide
23 Show circle 1=show 0=hide
24 Show square 1=show 0=hide
25 Show horizontal line 1=show 0=hide
26 Show vertical line 1=show 0=hide
27 Show quadrant1 dot 1=show 0=hide
28 Show quadrant2 dot 1=show 0=hide
29 Show quadrant3 dot 1=show 0=hide
30 Show quadrant4 dot 1=show 0=hide


Symbol color for each quadrant or part thereof, can be any one of the following predefined colors. A value of ranging from 0 - 7 will determine the color used to paint a quadrant of this symbol.

ValueColor
----------
0 black
1 blue
2 yellow
3 green
4 red
5 gray
6 cyan
7 pink


Example
--------
An icon that is shaded pink on the top, black on the bottom and has a yellow dot at the center is defined by the following binary bit pattern (in bit order from 1-30) shown below :-

HOB<<<----- Bit order increases in this direction <<<<-----LOB

00000000011111 000 010 000 000 111 111

The decimal equivalent of the above binary number is 8134719. To get an Icon that is painted as described above, you would have to pass the value "8134719" to this method as "al_symbol"

Parameters:
al_symbol - A 32 bit integer which can be decoded as above.

setQuadrant

public void setQuadrant(int quadrant,
                        int qColorRGB)
Sets the color for a specified quantrant of this Individual's Symbol object to the specified value. This value overides the current color for that quadrant.

Parameters:
quadrant - The quadrant whose color is to be updated (1 - 4)
qColorRGB - The RGB value for the new color

setSpouseindex

public void setSpouseindex(java.util.Hashtable rhs)
Assigns the spouse relationship table to specified hashmap.

Parameters:
rhs - The new spouse table. All spouses of this Individual are to be found in this table

getSpouseindex

public java.util.Hashtable getSpouseindex()
Returns:
The hash map containing spouse relationships. All spouses of this Individual are to be found in this table

setTwinindex

public void setTwinindex(java.util.Hashtable rhs)
Assigns the twin relationship table to specified hashmap

Parameters:
rhs - The new hash table containing this Individual's twin (or quadruplets) siblings

getTwinindex

public java.util.Hashtable getTwinindex()
Returns:
The hash map containing twin relationships. All twin brothers/sisters of this Individual are to be found in this table

isTwin

public boolean isTwin()
Returns:
True if this Individual is a twin-one or part of a group of triplets, quadruplets etc

setInfertile

public void setInfertile(Individual as_spouse,
                         boolean fertile)
Sets the infertility Indicator for the Relationship between this Individual and specified spouse. A relationship between two Individuals is said to be infertile if both couple cannot have children for one reason or another. This as distinguished from an Individual who is interfile or cannot have children.

Parameters:
as_spouse - This Individual's spouse
fertile - The fertility indicator (true or false)

isInfertile

public boolean isInfertile(Individual as_spouse)
Returns the infertility Indicator for the Relationship between this Individual and his spouse. A relationship between two Individuals is said to be infertile if both couple cannot have children for one reason or another. This as distinguished from an Individual who is interfile or cannot have children.

Parameters:
as_spouse - This Individual's spouse
Returns:
True if the relationship between these two is infertile and false otherwise

setInfertile

public void setInfertile(boolean fertile)
Sets the infertility indicator for this Individual

Parameters:
fertile - The new fertility indicator

isInfertile

public boolean isInfertile()
Returns the infertifility indicator for an Individual

Returns:
True if Individual is infertile, false otherwise

setNoissue

public void setNoissue(Individual as_spouse,
                       boolean ni)
Sets or unsets the relationship between this Individual and specified spouse as a "No Issue" type relatiosnhip A relationship is considered as "No Issue" if the two Individuals may not have kids together.

Parameters:
as_spouse - This Individual's spouse
ni - The fertility Indicator (true or false)

isNoissue

public boolean isNoissue(Individual as_spouse)
Returns the "No Issue" status of the this Individual's relationship with specified spouse. A relationship is considered as "No Issue" if the two Individuals may not have kids together.

Parameters:
as_spouse - The individual's spouse
Returns:
True if the relationship is "No Issue", false otherwise

setCasual

public void setCasual(Individual as_spouse,
                      boolean casual)
Sets or unsets the spouse "Casual Status" of the relationship between this Individual and specified spouse. A casual relationship is one that is not a commited "married" relationship where two Individuals stay together but are not officially married.

Parameters:
as_spouse - This Individual's spouse
casual - The new value for the "casual" property

isCasual

public boolean isCasual(Individual as_spouse)
Returns the "Casual" status of this Individual's relationship with specified spouse. A casual relationship is one that is not a commited "married" relationship where two Individuals stay together but are not officially married.

Parameters:
as_spouse - This Individual's spouse
Returns:
True if the relationship is casual, false otherwise.

setDivorced

public void setDivorced(Individual as_spouse,
                        boolean d)
Sets or unsets the "Divorced" status of this Individual's relationship with specified spouse. Individuals who got married and had a divorce will have a relationship marked as "divorced"

Parameters:
as_spouse - This Individual's spouse
d - The new value for "divorced" status of the relationship between these two Individuals

setSeparated

public void setSeparated(Individual as_spouse,
                         boolean s)
Sets or unsets the "Separated" status of this Individual's relationship with specified spouse. A relationship is considered as "separated" if the Individuals have not yet divorced but are no-longer married.

Parameters:
as_spouse - This Individual's spouse
s - The new "Separated" status

setMarried

public void setMarried(Individual as_spouse,
                       boolean normal)
Sets or unsets the "Married" status of this Individual's relationship with specified spouse. A relationship is normal ("Married") only if it is not casual, separated or divorced.

Parameters:
as_spouse - This Individual's spouse
normal - The new "Married" status

setConsanguineous

public void setConsanguineous(Individual as_spouse,
                              boolean incest)
Sets or unsets the "Consanguineous" status of this Individual's relationship with specified spouse. A relationship is Consanguineous if it is incestuous in any way.

Parameters:
as_spouse - This Individual's spouse
incest - The new "Married" status

isConsanguineous

public boolean isConsanguineous(Individual as_spouse)
Returns the Consanguineous status of this Individual's relationship with specified spouse. A relationship is Consanguineous if it is incestuous in any way.

Parameters:
as_spouse - This Individual's spouse
Returns:
True if the relationship is an incestuous one, if they are related at all, false otherwise

isDivorced

public boolean isDivorced(Individual as_spouse)
Returns the Divorced status of this Individual's relationship with specified spouse. Individuals who got married and had a divorce will have a relationship marked as "divorced"

Parameters:
as_spouse - This Individual's spouse
Returns:
True if the relationship is an incestuous one, if they are related at all, false otherwise

isSeparated

public boolean isSeparated(Individual as_spouse)
Returns the Separated status of this Individual's relationship with specified spouse. A relationship is considered as "separated" if the Individuals have not yet divorced but are nolonger married.

Parameters:
as_spouse - This Individual's spouse
Returns:
True if they are separated, false otherwise

isMarried

public boolean isMarried(Individual as_spouse)
Returns the "Married" or "Normal" status of this Individual's relationship with specified spouse. A relationship is normal ("Married") only if it is not casual, separated or divorced.

Parameters:
as_spouse - This Individual's spouse
Returns:
True if the relationship is a normal one, if they are related at all, false otherwise

setMarkedby

public void setMarkedby(java.lang.String marker)
Sets the marker text for this Individual. Marker text is drawn on the top right corner of this Individual's Icon.

Parameters:
marker - The new marker text. Can be any one of ("+", "-", "*") or any other marker text that may be defined in the future.

getMarkedby

public java.lang.String getMarkedby()
Returns:
The current marker text for this Individual. Can be any one of ("+", "-", "*") or any other marker text that may be defined in the future.

setIcontext

public void setIcontext(java.lang.String text)
Sets the Icontext property to specified value. Icon Text is rendered / drawn in the middle of this Individual's Icon.

Parameters:
text - The new Icon text

getIcontext

public java.lang.String getIcontext()
Returns:
The current Icon Text string. Icon Text is rendered / drawn in the middle of this Individual's Icon.

setIconsubtext

public void setIconsubtext(java.lang.String subtext)
Sets the Iconsubtext property. Icon subtext is drawn below the Individual's Icon at a location determined by Pedigree.getSubtextyvalue() property.

Parameters:
subtext - The text string to set set Icon subtext property to

getIconsubtext

public java.lang.String getIconsubtext()
The current Iconsubtext string. Icon subtext is drawn below the Individual's Icon at a location determined by Pedigree.getSubtextyvalue() property. Note that if an Individual has multiple subtext lines, the Iconsubtext string will be set to one multi-segment string with subtext lines being delimited by a new line character. To get the different subtext lines separately, one would typically split the Iconsubtext string into an array of strings as follows :- String lines[] = getIconsubtext().split("\n"); This gives an array of strings with the elements being equivalent to the different subtext lines.


setTraversed

public void setTraversed(boolean rhs)
Set a marker flag to true of false. This can be used by the Algorithm for various purposes one of which is to mark the Individual as having been traversed in a family traversal operation.

Parameters:
rhs - The flag to set (True sets the marker and false unsets the marker)

isTraversed

public boolean isTraversed()
Returns:
True if traversed is set, false otherwise. This can be used by the Algorithm for various purposes one of which is to mark the Individual as having been traversed in a family traversal operation.

setAdopted

public void setAdopted(boolean rhs)
Sets or unsets the adopted status of this Individual. This does not distinguish between those aopted into a Family or those Individudals that are adopted out to another Family.

Parameters:
rhs - Flag indicating whether or not the Individual is adopted.

isAdopted

public boolean isAdopted()
Determines if Individual is adopted or not.

Returns:
True If this Individual is Adopted, False Otherwise. This does not distinguish between those aopted into a Family or those Individudals that are adopted out to another Family.

getProband

public static Individual getProband()
Returns a reference to the Individual who is the proband for the Family . A Family may have 0 or 1 probands.

Returns:
The Individual who is the curent family proband. Null is returned if no family proband is specified.

setProband

public boolean setProband(boolean rhs)
Sets or usets the proband status of an Individual. If "rhs" is true, then this Individual becomes the new family proband. If "rhs" is false, no action will be taken if this Individual was not the proband otherwise the family proband will be set to null.

Parameters:
rhs - The new proband Indicator (True or False)
Returns:
True If proband status was changed and false otherwise

isProband

public boolean isProband()
Returns:
True if this Individual is a proband, false otherwise. A Family may have 0 or 1 probands.

setNoissue

public void setNoissue(boolean rhs)
Sets or usets the "No Issue" status of an Individual.

Parameters:
rhs - The new "No Issue" status.

isNoissue

public boolean isNoissue()
Returns:
True if this Individual is a "No Issue", false otherwise

setSAB

public void setSAB(boolean rhs)
            throws java.lang.Exception
Sets or usets the SAB status of an Individual. An Individuals who is marked as SAB died at birth.

Parameters:
rhs - The new SAB status
Throws:
java.lang.Exception - If the opertaion is illegal e.g. if Individual has kids and/or spouses

isSAB

public boolean isSAB()
Returns:
True if this Individual is an SAB, false otherwise. An Individuals who is marked as SAB died at birth.

setFamilyID

public void setFamilyID(java.lang.String rhs)
Sets the family ID of this Individual to supplied text string. This is used to show that this Individual belongs to a Family whose family ID is specified. Note that just changing this value does not actually move the Individual to the right Family. To do so, one has to excute one of two methods (1) Pedigree.addToFamily() and Family.addIndividual(). Even then, there is no guarantee provided that the relationships between this Indiviudal and and others in the same family have been properly set.

Parameters:
rhs - The new Family ID. Non numberic strings will be rejected quietly without an error alert

getFamilyID

public java.lang.String getFamilyID()
Returns:
The unique ID of the Family of which this Individual is a member

setTree

public void setTree(java.lang.String rhs)
Sets the Tree ID of this Individual to supplied text string. A sub tree consists of Family members who are connected to each other but are not connected by a relationship to other members of the same family. Non numberic strings will be rejected quietly without an error alert.

Parameters:
rhs - The new Tree ID

getTree

public java.lang.String getTree()
Returns the Tree ID of this Individual. A sub tree consists of Family members who are connected to each other but are not connected by a relationship to other members of the same family. If all members in a family are linked via relationships, then there will be only one "tree" in the family.

Returns:
The current tree ID of this Individual

setFather

public void setFather(Individual pa)
Sets Individual "pa" as the father of this Individual. Note that this method makes no attempt to do the opposite relationships. You would typically follow this method up with a call to #setRelative(Individual, String) in order to set the opposite relationship. If the validation of the parameter "pa" is such that "pa" cannot be a father of this Individual, the method returns cleanly and quietly without setting such the relationship.

Parameters:
pa - The new father
See Also:
addFather(Individual, String)

getFather

public Individual getFather()
Returns:
This Individual's father

setMother

public void setMother(Individual ma)
Sets Individual "ma" as the mother of this Individual. Note that this method makes no attempt to do the opposite relationships. You would typically follow this method up with a call to #setRelative(Individual, String) in order to set the opposite relationship. If the validation of the parameter "ma" is such that "ma" cannot be a mother of this Individual, the method returns cleanly and quietly sithout setting such a relationship

Parameters:
ma - The new mother.
See Also:
addMother(Individual, String)

getMother

public Individual getMother()
Returns:
The Individual object which is the reference to the Mother of this Individual, null if no such mother exists

setSpouse

public void setSpouse(Individual sp)
Sets the main spouse reference for this Individual. An Individual can only have one main spouse referrenced by this pointer. The rest of the spouses are kept as relatives with a relationship indicator of RelationshipConstants.SPOUSE. If this Individual already has a main spouse, the new spouse will be added as just another spouse.

Parameters:
sp - The new main spouse for this Individual. May be null to remove main spouse.

getSpouse

public Individual getSpouse()
Returns:
This Individual's main spouse or null if no such spouse exists. An Individual can only have one main spouse referrenced by this pointer. The rest of the spouses are kept as relatives with a relationship indicator of RelationshipConstants.SPOUSE.

setX

public void setX(double xc)
Sets the X-Coordinate for this Individual's Icon

Parameters:
xc - The value to set

getX

public double getX()
Returns:
the current X-Coordinate of the Individual object

setY

public void setY(double yc)
Sets the Y-Coordinate for this Individual's Icon

Parameters:
yc - The value to set

getY

public double getY()
Returns:
the current Y-Coordinate of the Individual object

setChildline

public void setChildline(java.awt.geom.Line2D as_line)
Sets child line for this Individual to the specified value

Parameters:
as_line - The line object to assign to this Object

setTwinline

public void setTwinline(java.awt.geom.Line2D as_line)
Sets twin line property for this Individual

Parameters:
as_line - The new twin line

getTwinline

public java.awt.geom.Line2D getTwinline()
Returns:
The current twin line object for this Individual

getChildline

public java.awt.geom.Line2D getChildline()
Returns:
current value of the child line property for this Individual

getRightMostSibling

public Individual getRightMostSibling()
Returns:
The sibling who is the right most of all of this Individual's siblings or null if this Individual has no brothers/ sisters. If this Individual is the rightmost of the siblings, this Individual's record will be returned. Rightmost refers to the Individual's relative position as measured in the increasing X-direction in the Pedigree's graphics 2D space.

getLeftMostSibling

public Individual getLeftMostSibling()
Returns:
The sibling who is the left most of all of this Individual's siblings or null if this Indvidual has no brothers/ sisters. If this Individual is the leftmost of the siblings, this Individual's record will be returned. Leftmost refers to the Individual's relative position as measured in the decreasing X-direction in the Pedigree's graphics 2D space.

getRightMostTwin

public Individual getRightMostTwin()
Returns:
The twin who is the right most of all of this Individual's twins or null if this Indvidual has no twin brothers/ sisters. If this Individual is the rightmost of the twins, this Individual's record will be returned. Rightmost refers to the Individual's relative position as measured in the increasing X-direction in the Pedigree's graphics 2D space.

getLeftMostTwin

public Individual getLeftMostTwin()
Returns:
The twin who is the leftmost (2D space) of all of this Individual's twins or null if this Indvidual has no twin brothers/ sisters. If this Individual is the leftmost of the twins, this Individual's record will be returned. Leftmost refers to the Individual's relative position as measured in the decreasing X-direction in the Pedigree's graphics 2D space.

setSiblingline

public void setSiblingline(java.awt.geom.Line2D as_line)
Sets the sibling line for this Individual to supplied line2D object

Parameters:
as_line - The new sibling line for this Individual

getSiblingline

public java.awt.geom.Line2D getSiblingline()
Fetch and return a line2d object rep's the sibling line for this Individual

Returns:
A line2D object -- The sibling line for this Individual

setRelationships

public void setRelationships(java.util.Hashtable rhs)
Assigns the Individual's relationships container to the supplied hashmap. The hashmap key for each table entry is the UPN of this respective Individual with whom that relationship is shared. This table contains nothing and acts only as a surrogate pointer to more specific relationship tables such as Individual.kids, Individual.spouses and Individual.siblings. It was introduced before a design problem arose where Individuals with may have multiple relationships with another single Individual e.g. one Individual could be both a spouse and a sibling of another Individual, making it impossible to use the UPN as a key for both relationship entries. This method may be deprected in the future as its functions are well perfomed by the methods setKids(), setSpouses() and setSiblings().

Parameters:
rhs - The new relationship container

setKids

public void setKids(java.util.Hashtable rhs)
Assigns the Individual's kids relationships to the supplied hashmap. The hashmap key for each table entry is the UPN of this respective kid with whom that child relationship is shared.

Parameters:
rhs - The new kids relationship container

setSpouses

public void setSpouses(java.util.Hashtable rhs)
Assigns the Individual's spouses relationships container to the supplied hashmap. The hashmap key for each table entry is the UPN of this respective spouse with whom that spouse relationship is shared.

Parameters:
rhs - The new spouse relationship container

setSiblings

public void setSiblings(java.util.Hashtable rhs)
Assigns the Individual's siblings relationships index to the supplied hashmap contents. The hashmap key for each table entry is the UPN of this respective sibling with whom that relationship is shared.

Parameters:
rhs - The new sibling relationship container

setSpouselines

public void setSpouselines(java.util.Hashtable rhs)
Sets this Individual's spouse relationship lines property. The hashmap key for each table entry is the UPN of this respective spouse with whom that relationship line is shared.

Parameters:
rhs - The hashmap whose contents are the relationship lines for connecting this individual to his/her spouses

getSpouselines

public java.util.Hashtable getSpouselines()
Returns:
The hashmap whose contents are the relationship lines for connecting this individual to his/her spouses. The hashmap key for each table entry is the UPN of this respective spouse with whom that relationship line is shared.

getParentlines

public java.util.Hashtable getParentlines()
Returns:
The hashmap that contains this Individual's parent relationship lines. The hashmap key for each table entry is the UPN of this respective spouse with whom that relationship line is shared.

setParentlines

public void setParentlines(java.util.Hashtable rhs)
Sets this Individual's parent relationship lines container to specified hashmap. The hashmap key for each table entry is the UPN of this respective spouse with whom that relationship line is shared.

Parameters:
rhs - The hashmap whose contents are the relationship lines

getRelationships

public java.util.Hashtable getRelationships()
Returns:
The current relationship table whose contents are this Indivdiual's relationships keyed by relative UPN.

getKids

public java.util.Hashtable getKids()
Returns:
The current relationship table for kids

getSiblings

public java.util.Hashtable getSiblings()
Returns:
The current relationship Hash Table for siblings. The hashmap key for each table entry is the UPN of this respective sibling with whom that relationship is shared.

getSpouses

public java.util.Hashtable getSpouses()
Returns:
The current spouse relationship table for spouses. The hashmap key for each table entry is the UPN of this respective spouse with whom that relationship is shared.

getSpouseline

public java.awt.geom.Line2D getSpouseline(Individual as_person)
Returns a Line2D object representing the spouse relationship line between this Individual and specified spouse.

Parameters:
as_person - The spouse with whom spouse line is shared
Returns:
The current relationship line between this Individual and spouse or null if none is found

getParentline

public java.awt.geom.Line2D getParentline(Individual as_person)
Returns the current parent relationship line between this Individual and the specified spouse. Note to avoid duplications, the parent relationshuip line may can be owned by only one of the two parents as is the spouse line between them.

Parameters:
as_person - This Individual's spouse with whom a parent line may be shared or null
Returns:
Line2D object which is the parent line shared by these two, null if none is found

getAnykid

public Individual getAnykid()
Gets any one Individual who is this Individual's child

Returns:
Individual (kid) or null if this Individual has no children

getAnykid

public Individual getAnykid(Individual as_spouse)
Gets any one child / kid shared between this Individual and specified spouse.

Parameters:
as_spouse - This Individual's spouse
Returns:
Any one of the two parents' kid

getAnysibling

public java.lang.String getAnysibling()
Returns:
Any one sibling of this Individual

numSiblings

public int numSiblings()
Returns:
The number of Siblings for Individual

hasSiblings

public boolean hasSiblings()
Returns:
True if this Individual has at least one sibling

isSiblingOf

public boolean isSiblingOf(Individual as_person,
                           boolean includeAdopted)
Determines if current Individual is a sibling of the specified Individual

Parameters:
as_person - The Individual whose relationships is to be checked
includeAdopted - A flag indicating whether or not to cut accross adopted lines in building list of siblings to be checked.
Returns:
True if the two are siblings false otherwise

isSpouseOf

public boolean isSpouseOf(Individual as_person)
Parameters:
as_person - The Individual to check
Returns:
True if as_person is a spouse of this Individual, false otherwise

isKidOf

public boolean isKidOf(Individual as_person)
Parameters:
as_person - The Individual to check
Returns:
True if as_person is a child of this Individual, false otherwise

hasSpouses

public boolean hasSpouses()
Returns:
True of this Individual has at least one spouse

numSpouses

public int numSpouses()
Returns:
The number of spouses this Individual has

hasKids

public boolean hasKids()
Returns:
True of this Individual has at least one child

numKids

public int numKids()
Returns:
The number of kids for this Indvidual regardless of whether or not the children have different mothers/fathers

hasParents

public boolean hasParents()
Returns:
True of this Individual has at least one parent specified in this Pedigree

hasBothparents

public boolean hasBothparents()
Returns:
True of this Individual has at both parents specified in this Pedigree

hasOneparent

public boolean hasOneparent()
Returns:
True of this Individual has only one parent specified in this Pedigree

isOwnparent

public boolean isOwnparent()
Reserved for ver1.1 True of this Individual has is his own parent (plants will do this )


isMale

public boolean isMale()
Returns:
True if this Individual is male, false otherwise

isFemale

public boolean isFemale()
Returns:
True if this Individual is female, false otherwise

getTwins

public java.util.Vector getTwins()
Returns a Vector of UPN's for Individuals who may be twins or quadruplets of current individual.

Returns:
A Vector with UPN's or an empty vector

getRelatives

public java.util.Vector getRelatives(java.lang.String as_relationship1,
                                     java.lang.String as_relationship2)
Deprecated. Returns a Vector of UPN's of this Individual's relatives as determined by the relationship string passed in parameters "a_relationship1" and "as_relationship2". Only Sons and Daughters or Brothers and Sisters can be retrieved this way.

Parameters:
as_relationship1 - The first relationship to look for e.g RelationshipConstants.BROTHER, RelationshipConstants.SISTER etc
as_relationship2 - The second relationshiop to look for e.g. RelationshipConstants.SON, RelationshipConstants.DAUGHTER
Returns:
Vector of UPN's of relatives found or an empty vector if no relatives have been found.
See Also:
RelationshipConstants, getRelatives(String, String, PedigreeComparator)

getRelatives

public java.util.Vector getRelatives(java.lang.String as_relationship1,
                                     java.lang.String as_relationship2,
                                     PedigreeComparator aComparator)
Returns a Vector of UPN's of this Individual's relatives as determined by the relationship string passed in parameters "a_relationship1" and "as_relationship2". Only Sons and Daughters or Brothers and Sisters can be retrieved this way. Typical relationship strings are RelationshipConstants.BROTHER, RelationshipConstants.SISTER, RelationshipConstants.SON, RelationshipConstants.DAUGHTER

Parameters:
as_relationship1 - The first relationship defining individuals to be returned. This is typically RelationshipConstants.SON, RelationshipConstants.DAUGHTER, RelationshipConstants.SISTER, RelationshipConstants.BROTHER
as_relationship2 - The second relationship defining individuals to be returned. This is typically RelationshipConstants.SON, RelationshipConstants.DAUGHTER, RelationshipConstants.SISTER, RelationshipConstants.BROTHER
aComparator - The pedigree comparator to define the order by which the returned individuals will be sorted. If this parameter is NULL then no specific order will be enforced.
Returns:
Vector of UPN's of relatives found or an empty vector if no relatives have been found.
See Also:
RelationshipConstants

getRelatives

public java.util.Vector getRelatives(java.lang.String as_relationship,
                                     PedigreeComparator aComparator)
Returns a Vector of UPN's of this Individual's relatives as determined by the relationship string passed in parameters "a_relationship".

Parameters:
as_relationship - The relationship to look for e.g. RelationshipConstants.SON, RelationshipConstants.DAUGHTER
aComparator - The pedigree comparator to define the order by which the returned individuals will be sorted. If this parameter is NULL then no specific order will be enforced.
Returns:
Vector with a list of UPN's of relatives found or an empty vector if no relatives have been found.

getRelatives

public java.util.Vector getRelatives(java.lang.String as_relationship)
Deprecated. Returns a Vector of UPN's of this Individual's relatives as determined by the relationship string passed in parameters "a_relationship".

Parameters:
as_relationship - The relationship to look for e.g. RelationshipConstants.SON, RelationshipConstants.DAUGHTER
Returns:
Vector with a list of UPN's of relatives found or an empty vector if no relatives have been found.
See Also:
getRelatives(String, PedigreeComparator)

getKid

public Individual getKid(java.lang.String as_upn)
Retrieves an Individual whose UPN equals the supplied parameter and is a child of this Individual

Parameters:
as_upn - The UPN of the Individual to be retrived.
Returns:
An Individual or null if no child is found

getRelative

public Individual getRelative(java.lang.String as_upn)
Retrieves this Individual's relative whose UPN is specified.

Parameters:
as_upn - The UPN of the Individual / relative to be retrieved.
Returns:
Individual (kid, spouse, sibling) or null if no relative with specified UPN exists

getChildren

public java.util.Vector getChildren()
Returns:
A Vector containing Individual objects or an empty vector if no children are found. All this Individual's children are returned regardless of who the 2nd parent is.

numKids

public int numKids(Individual as_spouse)
Parameters:
as_spouse - The spouse by whom this Individual has children
Returns:
The total number of children this Individual has by a given spouse.

getKids

public java.util.Vector getKids(Individual as_spouse)
Deprecated. 

Parameters:
as_spouse - The spouse by whom this Individual has children. If NULL is specified then only those children whose 2nd parent is not specified are returned.
Returns:
An ordered list (Vector) with UPN's of the children. The child with the smallest UPN will be found at element "0" of the Vector while the child with the highest UPN will be located at the last array index of the Vector.
See Also:
getChildren(Individual, PedigreeComparator)

getChildren

public java.util.Vector getChildren(Individual as_spouse,
                                    PedigreeComparator aComparator)
Parameters:
as_spouse - The spouse by whom this Individual has children. If NULL is specified then only those children whose 2nd parent is not specified are returned.
aComparator - The pedigree comparator to define the order by which the returned individuals will be sorted. If this parameter is NULL then no specific order will be enforced.
Returns:
An ordered list (Vector) with UPN's of the children. The child with the smallest UPN will be found at element "0" of the Vector while the child with the highest UPN will be located at the last array index of the Vector.

getLeftkid

public Individual getLeftkid(Individual as_spouse)
Finds a child of this Individual's whose X-Coordinate is the leftmost in the decreasing X-direction on the Pedigree space

Parameters:
as_spouse - Spouse who is mother/father of the kid in question
Returns:
Individual (kid) or null or none is found

getRightkid

public Individual getRightkid(Individual as_spouse)
Returns a child of this Individual's whose X-Coordinate is the rightmost in the increasing X-direction on the Pedigree space

Parameters:
as_spouse - Spouse who is mother/father of the child in question
Returns:
A child or NULL if no child is found

deleteself

public void deleteself()
Disconnects this Individual from all his/her direct relatives (Siblings, Parents and Kids and SPouses) by removing this Individual from their relationship tables. It is important to note that this method, while it fully disconnects this Individual from his immediate relatives, does not remove the Individual from the Pedigree Family Model and hence it is up to the caller to do so.


addSibling

public void addSibling(Individual as_relative,
                       java.lang.String as_relationship)
Connects this Individual to "as_relative" as siblings. All of this Individual's existing siblings are connected to "as_relative" and vice versa. Note that this method does nothing to connect the new sibling to this Individual's parents if indeed they exist so it is up to you to call the appropriate methods to do that.

Parameters:
as_relative - The Individual to be added as a sibling of this Individual
as_relationship - "Brother" or "Sister" relationship types

addChild

public void addChild(Individual as_relative,
                     java.lang.String as_relationship)
Connects "as_relative" to this Individual as a child. An attempt is also made to do the opposite relationship by setting this Individual as a father or mother of the newly added child. The method does not however connect the new child to the other children of this Individual as siblings. For that you would have to call the appropriate methods to set sibling relationships between the new child and the other children.

Parameters:
as_relative - The Individual who is to be connected as child
as_relationship - String equal to RelationshipConstants.SON or RelationshipConstants.DAUGHTER

addFather

public void addFather(Individual as_relative,
                      java.lang.String as_relationship)
Connects "as_relative" to this Individual as a father. An attempt is also made to do the opposite relationship of setting as_relative as a child of this Individual. The method does not however connect the new father to any existing siblings of this Individual so it is up to you to call the appropriate methods. Neither does it connect the new Father to any existing parent as a spouse, leaving that responsibility and determination to be made by you.

Parameters:
as_relative - The new Individual to be added as father
as_relationship - RelationshipConstants.FATHER

addMother

public void addMother(Individual as_relative,
                      java.lang.String as_relationship)
Connects "as_relative" to this Individual as a mother. An attempt is also made to do the opposite relationship of setting as_relative as child of this Individual. The method does not however connect the new mother to any existing siblings of this Individual so it is up to you to call the appropriate methods. Neither does it connect the new mother to any existing parent as a spouse, leaving that responsibility and determination to be made by you.

Parameters:
as_relative - The Individual to be added as a mother
as_relationship - RelationshipConstants.MOTHER

addSpouse

public void addSpouse(Individual as_relative,
                      java.lang.String as_relationship)
Connects "as_relative" to this Individual as a spouse. An attempt is also made to do the opposite relationship of setting as_relative as spouse of this Individual. The method does not however connect the new spouse as a mother or father of any existing children of this Individual.

Parameters:
as_relative - The Individual who is to be connected as spouse
as_relationship - A string equal to RelationshipConstants.SPOUSE

setTwins

public void setTwins(Individual as_relative,
                     java.lang.String as_relationship)
Add a twin (triplet or quadruplet) brother or sister to this Individual. If this Individual has existing twins, they will be registered as triplets (or indeed quadruplets) of as_relative and vice versa. Any existing twins (triplets or quadruplets) and/or siblings will be connected to the new sibling being added but as in the #addSibling(Individual, String) method, no attempt is made to connect this new Individual to existing parents.

Parameters:
as_relative - The Individdual to be set as this Individual's twin (triplet or quadruplet etc)
as_relationship - The string relationship (BROTHER, SISTER etc)

isTwinOf

public boolean isTwinOf(Individual twin)
Returns true if the Individual "twin" is a twin one of this Individual

Parameters:
twin - Individual whose relationship is to be checked
Returns:
True if Individual "twin" is a twin one of this Individual.

isParentOf

public boolean isParentOf(Individual kid,
                          boolean includeAdopted)
Returns true If this Individual is a parent to "kid"

Parameters:
kid - Individual whose relationship is to be checked
includeAdopted - Flag indicating whether of not adopted parents/ancestors across adopted lines must be returned or considered as parents. If false, parents of this Indidual will not be returned if he/she was adopted into the family. Adopted out Individuals will be returned regardless of the value of this flag.
Returns:
True if this Individual is a parent of "kid" and false otherwise.

ancestors

public java.lang.String ancestors(boolean includeAdopted)
Gets a semi-colon delimited list of Unique Person Numbers (UPN's) for all ancestors of this Individual

Parameters:
includeAdopted - Flag indicating whether of not adopted ancestors across adopted lines must be returned or included as part of the list of ancestors. If false, ancestors of this Indiduals will not be returned if he/she was adopted into the family. Adopted out Individuals will be returned regardless of the value of this flag.
Returns:
A semicolon delimied string of Ancestors UPN's for this Individual starting from father and mother. An empty string will be returned if no ancestors of this Individual are known.

mySiblings

public java.util.Vector mySiblings(boolean includeAdopted)
Parameters:
includeAdopted - Flag indicating whether of not adopted in sibling should or should not be included in the list returned. Adopted out Individuals will be returned regardless of the value of this flag.
Returns:
A list of this Individual's siblings. The contents of the Vector are Individual UPN's.

myDescendants

public java.util.Vector myDescendants(int degree,
                                      boolean includeAdopted)
Returns a vector with all descendants of this Individual followed down to the specified degree of relation.

Parameters:
degree - An integer specifying the degree of relation to search up to. If degree is 1, kids are returned, if 2 then grandkids are returned etc
includeAdopted - True if descendants across adopted lines are to be included in list of Descendants. This may be required during traversal but will not be required if list if being used to get list of descendants for display purposes
Returns:
Vector with Individual objects

myDescendants

public java.util.Vector myDescendants(boolean includeAdopted)
Recursive lookup of all descendants of this Individual.

Parameters:
includeAdopted - True if descendants across adopted lines are to be included in list of Descendants. This may be required during traversal but will not be required if list if being used to get list of descendants for display purposes
Returns:
A Vector whose contents are Individual objects representing descendants of this Individual

myAncestors

public java.util.Vector myAncestors(int degree,
                                    boolean includeAdopted)
Retrievs a list of ancestors fo this Individual whose degree of relation from this Individual is as specified

Parameters:
degree - An integer specifying the degree of relation to search up to. If degree is one, father and mother are returned, if 2 then grandpa and grandma from the father and mother lines are returned.
includeAdopted - True if ancestors across adopted lines are to be included in list of ancestors. This may be required during traversal but will not be required if list if being used to get list of descendants for display purposes
Returns:
A Vector whose contenst are Individual objects beinge ancestors of this Individual. An empty vector will be returned if there are no ancestors found.

myAncestors

public java.util.Vector myAncestors(boolean includeAdopted)
Returns a vector whose elements are Individual objects being ancestors of this person

Parameters:
includeAdopted - True if ancestors across adopted lines are to be included in list of ancestors. This may be required during traversal but will not be required if list if being used to get list of descendants for display purposes
Returns:
A Vector whose contenst are Individual objects beinge ancestors of this Individual. An empty vector will be returned if there are no ancestors found.

myRelatives

public java.util.Vector myRelatives(int degree,
                                    int direction,
                                    int count,
                                    boolean falldown,
                                    boolean didfalldown,
                                    boolean includeAdopted)
Finds and returns all relatives this Individual who are at the specified degree of relation from this Individual. List of relatives includes this Individual as well. A direction parameter is used to cut down on the number of repeat traversals made by the system in search of relatives. Please note before calling this method, all Individuals in the pedigree must have their "traversed" field set to a value o f false (Individual.setTraversed(false) otherwise no traversal will be done sucessfully.

Parameters:
degree - The degree of relation to search to (-1) searches all relatives
direction - The direction of search determined by the following integer values 0 - initial search (searches for all direct relatives) of current Individual -1 - sideways while exploring siblings. No need to search for siblings or ancestors when a sibling is explored 2 - Updwards in search of ancestors -- No need to seek descendants 3 - Downwards in search of kids -- no need to go back looking for ancestors
count - The recursion counter (used internally to initialize traversal flags). Must always be 0. If a value other than zero is used on calling method, the traversal may or may not happen.
falldown - Boolean indicating whether or not an Individual invoked as an ancestor / parent must look down to find kids that may not have been traversed. If a parent has other kids that are not the invoking child's siblings then half brothers and sisters of that kid would not have been traversed, necessitating a "fall down" traversal by parent.
didfalldown - True if the search for kids resulted from a falldown as described above
includeAdopted - True if relatives across adopted lines are to be included in list of ancestors / relatives. This may be required during traversal but will not be required if list is being used to get list of relatives/descendants for display purposes
Returns:
A vector whose contents are relatives (Individual objects) of this Individual.

indexOf

public int indexOf(Individual ind,
                   int direction,
                   int count,
                   boolean found,
                   boolean falldown,
                   boolean didfalldown,
                   boolean includeAdopted)
Returns the degree of relation of Individual "ind" from this Individual or -1 if they are not relatives. Spouses are not considered to be relatives. Please note before calling this method, all Individuals in the pedigree must have their "traversed" field set to a value o f false (Individual.setTraversed(false) otherwise no traversal will be done sucessfully.

Parameters:
ind - The individual whose degree of relation is being checked
direction - The direction of search. Used internally
count - The recursion counter (used internally to initialize traversal flags). Must always be 0. If a value other than zero is used on calling method, the traversal may or may not happen.
found - The boolean flag used to stop the search when the relative "ind" has been found.
falldown - Boolean indicating whether or not an Individual invoked as an ancestor / parent must look down to find kids that may not have been traversed. If a parent has other kids that are not the invoking child's siblings then half brothers and sisters of that kid would not have been traversed, necessitating a "fall down" traversal by parent.
didfalldown - True if the search for kids resulted from a falldown as described above
includeAdopted - True if relatives across adopted lines are to be included in list of ancestors / relatives. This may be required during traversal but will not be required if list if being used to get list of relatives/descendants for display purposes
Returns:
The degree of relation of Individual "ind" from this Individual or -1 if they are not relatives. Spouses are not considered to be relatives.

isRelativeOf

public boolean isRelativeOf(Individual ind,
                            boolean includeAdopted)
Parameters:
ind - The individual whose relationship to this Individual is being checked.
includeAdopted - True if relatives across adopted lines are to be included in list of ancestors / relatives. This may be required during traversal but will not be required if list if being used to get list of relatives/descendants for display purposes
Returns:
True if Idnivdiual "ind" is a direct or indirect relative of this Individual. Spouses of Individual or spouses of relatives are not considered relatives. Please note before calling this method, all Individuals in the pedigree must have their "traversed" field set to a value o f false (Individual.setTraversed(false) otherwise no traversal will be done sucessfully.

isHalfBrother

public boolean isHalfBrother(Individual ind)
Parameters:
ind - The Individual to whom this Individual may be a half brother.
Returns:
True if this Individual is half brother of Individual "IND".

isHalfSister

public boolean isHalfSister(Individual ind)
Parameters:
ind - The Individual to whom this Individual may be a half sister.
Returns:
True if this Individual is half sister of Individual "IND".

isAuntOf

public boolean isAuntOf(Individual ind,
                        boolean includeAdopted)
Returns true if this Individual is an Aunt of "ind". An Aunt is a female sibling of one of your ancestors.

Parameters:
ind - The Individual to whom this Indibidual may be an aunt.
includeAdopted - True if relatives across adopted lines are to be included in list of ancestors / relatives. This may be required during traversal but will not be required if list is being used to get list of relatives/descendants for display purposes
Returns:
True if this Individual is an Aunt of "ind"

isUncleOf

public boolean isUncleOf(Individual ind,
                         boolean includeAdopted)
Returns true if this Individual is an Uncle of "ind". An Uncle if a male sibling of one of your ancestors.

Parameters:
ind - The Individual to whom this Indiviual may be an uncle.
includeAdopted - True if relatives across adopted lines are to be included in list of ancestors / relatives. This may be required during traversal but will not be required if list is being used to get list of relatives/descendants for display purposes
Returns:
True if this Individual is an Uncle of "ind"

myUncles

public java.util.Vector myUncles(boolean includeAdopted)
Returns a list Individuals who are indirect Ancestors (Aunts and Uncles) of this Individual. Please note before calling this method, all Individuals in the pedigree must have their "traversed" field set to a value o f false (Individual.setTraversed(false) otherwise no traversal will be done sucessfully.

Parameters:
includeAdopted - A flag indicating whether or not to cut accross adopted lines in building list of ancestors
Returns:
A Vector whose contents are Individual objects (aunts and uncles) or an empty vector if no uncles or aunts are found.

isAncestorOf

public boolean isAncestorOf(Individual as_grantchild,
                            boolean includeAdopted)
Returns true if this Individual is ancestor of "as_grandchild"

Parameters:
as_grantchild - The Individual whose ancestry is to be detrmined
includeAdopted - A flag indicating whether or not to cut accross adopted lines in building list of ancestors
Returns:
True if this Individual is an ancestor of as_grandchild and false otherwise.

getAncestor

public Individual getAncestor()
Returns:
This individual's oldest known ancestor. If more than one ancestor is found at the highest level, then only one of them is returned.

getAncestorDOR

public int getAncestorDOR()
Determines the degree of relation from this Individual to furthest known ancestor.

Returns:
This number of steps (generational gap) or degree of relation from this Individual to the oldest (or one of the oldest) ancestor(s).

getUpn

public java.lang.String getUpn()
Returns:
The Unique Person Number for this Individual

setUpn

public void setUpn(java.lang.String rhs)
Sets the Unique Number for this Individual to supplied value

Parameters:
rhs - The new UPN

setUpn

public void setUpn(int rhs)
            throws java.lang.NumberFormatException
Sets the Unique Number for this Individual to supplied value

Parameters:
rhs - The new UPN
Throws:
java.lang.NumberFormatException - If the parameter supplied cannot be converted to a string

getTag

public java.lang.String getTag()
Returns:
Current string value of the tag. Tag is normally used as an external key for external databases or systems that supply data to the Java Bean for drawing.

setTag

public void setTag(java.lang.String rhs)
Sets the tag property value to supplied string

Parameters:
rhs - The new tag

setGender

public void setGender(java.lang.String rhs)
               throws java.lang.Exception
Sets the Gender of this Individual to supplied String. Accepts only the valid strings and throws an invalid parameter exception otherwise.

Parameters:
rhs - The new gender
Throws:
java.lang.Exception - If the parameters passed are invalid
See Also:
RelationshipConstants

getGender

public java.lang.String getGender()
Returns:
Gender of this Individual (0) female, (1) Male
See Also:
RelationshipConstants

setFatherid

public void setFatherid(java.lang.String rhs)
Sets the FatherID of this Individual to supplied value.

Parameters:
rhs - The new Father ID. The new fatherid must be convertible to a number else it will be ignored.

getFatherid

public java.lang.String getFatherid()
Returns:
The UPN of the Father

setMotherid

public void setMotherid(java.lang.String rhs)
Sets the MotherID of this Individual to supplied UPN

Parameters:
rhs - UPN of mother.The new motherid must be convertible to a number else it will be ignored.

getMotherid

public java.lang.String getMotherid()
Returns:
The UPN of the Mother

getXcoordinate

public double getXcoordinate()
Returns:
The current X Coordintae of the Individual object

getYcoordinate

public double getYcoordinate()
Returns:
The current Y Coordintae of the Individual object

setPoint

public void setPoint(double xc,
                     double yc)
Sets the current location of an Individual object to supplied xy coordinates.

Parameters:
xc - The X Coordinate
yc - The Y Coordinate

setDeceased

public void setDeceased(boolean rhs)
Set or unsets the deceased status for this individual to deceased or alive. Progeny draws a slash through an individual to indicate the individual is deceased.

Parameters:
rhs - Flag indicating whether or not Individual is deceased.

isDeceased

public boolean isDeceased()
Returns:
True if Individual is deceased, False otherwise

setChanged

public void setChanged(boolean ab_changed)
Not Used


isChanged

public boolean isChanged()
Not used


setHighlighted

public void setHighlighted(boolean rhs)
Sets or unsets the hilighted status of the Individual.

Parameters:
rhs - True to hilight, false to unhighlight

isHighlighted

public boolean isHighlighted()
Returns:
True if the Individual is marked as hilited, false otherwise

setFirstName

public void setFirstName(java.lang.String fname)
Sets the 1st name of the Individual to value .

Parameters:
fname - The value to set name to

getFirstName

public java.lang.String getFirstName()
Returns:
String The 1st name of the Individual if one exists

setLastName

public void setLastName(java.lang.String rhs)
Sets the last name of the Individual to value .

Parameters:
rhs - The value to set name to

getLastName

public java.lang.String getLastName()
Returns:
String The last name of the Individual if one exists

setXcoordinate

public void setXcoordinate(double x)
Sets the X coordinate position at which this Individual's Icon will be drawn.

Parameters:
x - The value to set

setYcoordinate

public void setYcoordinate(double y)
Sets the Y coordinate position at which this Individual's Icon will be drawn.

Parameters:
y - The value to set

setGeneration

public void setGeneration(int rhs)
Sets this Individual's generation to value specified. The default generation for each Individual is "999999" and must decrease as you go up the ancestral line while it increase as you go down the descendant line. Fails cleanly and quietly.

Parameters:
rhs - The new generation of the Individual

getGeneration

public int getGeneration()
Returns:
This Individual's generation. The default generation "999999" for every individual and increases as you go up the descendant line while it decreases as you go down the ancestral line. The generation returned is not adjusted and reflects the internal generation stored and used by the system. For a generation value that is adjusted for an external system, use the method getAdjustedGeneration()

getAdjustedGeneration

public int getAdjustedGeneration(int oldestgen)
Parameters:
oldestgen - The generation of the oldest Individual on the Pedigree
Returns:
The generation of an Individual as it would appear in exported XML data or other external system. Individuals within Pedigree have internal values for generations that are different than the normal generation as the generations increase/decrease starting from a default of "999999". This method returns a value for generation that is adjusted for external systems such that the oldest generation is at generation "0" while the generations increase as you go further down the descendant line.

myGeneration

public java.lang.String myGeneration()
Returns:
A string representation of the Individual's internal generation. For adjusted generation value, see method getAdjustedGeneration().

setShadow

public void setShadow(boolean rhs)
Sets or unsets the boolean flag indicating whether or not this Individual is a shadow or not.

Parameters:
rhs - The new value of the the shadow property

isShadow

public boolean isShadow()
Returns:
A boolean flag indicating whether or not this Individual is a shadow or not.

inheritedHaplotype

public java.lang.String inheritedHaplotype(Individual parent)
Parameters:
parent - The parent from whom a Haplotype is expected to have been inherited.
Returns:
The Paternity of the set of Alleles that were inherited as a Haplotype from parent to this child (if at all). String will be any one of Allele.PATERNAL or Allele.MATERNAL. If either the child of the parent (THIS) has no chromosome specified then a NULL will be returned. Null if also returned if the parent did not pass a haplotype down to the child. This method will only return useful results after the smartHaplotyping alforithm has been executed on the Individuals in the Pedigree (this Individual and the parent)
Since:
version 1.01

passedHaplotype

public java.lang.String passedHaplotype(Individual child)
Parameters:
child - The child to whom a Haplotype is expected to have been passed
Returns:
The Paternity of the set of Alleles that were passed on as a Haplotype to this Individual's child (if at all). String will be any one of Allele.PATERNAL or Allele.MATERNAL. If either the child of the parent (THIS) has no chromosome specified then a NULL will be returned. Null if also returned if the parent did not pass a haplotype down to the child. This method will only return useful results after the smartHaplotyping alforithm has been executed on the Individuals in the Pedigree (this Individual and the child)
Since:
Introcuced since version 1.01

findMatchingAncestor

public java.lang.String findMatchingAncestor(java.awt.Paint matchcol,
                                             java.lang.String markername,
                                             Allele allele)
Finds an ancestor from whom the specified Allele could possibly have been inherited. This is done by matching the Color (matchcol) on the allele and that on the Ancestor's Allele, the AlleleID as well as the marker on which the Allele exists. If a match is found, a semi-colon delimited string with UPN of ancestor, markername and AlleleID and paternity on the Ancestor is returned. Only ROOT ancestors and/or adoptedIN ancestors are considered for matching purposes.

Parameters:
matchcol - The color that is used to help in the matching of this Individual's Allele and the ancestor's allele. Typcially AlleleID's are used to match but in cases where there are double matches, the color will be used to distinguish teh actual Allele that was inherited from that ancestor.
markername - The marker on which the Allele being matched exists
allele - The allele for which a match is being inspected
Returns:
A semi-colon delimited string with UPN, markename, alleleid and allele paternity where all these properties refer to the ancestor where the match was found.

isTwintypeunknown

public boolean isTwintypeunknown()
Getter for property twintypeunknown.

Returns:
Value of property twintypeunknown.

setTwintypeunknown

public void setTwintypeunknown(boolean rhs)
Setter for property twintypeunknown.

Parameters:
rhs - New value of property twintypeunknown.

isDizygotic

public boolean isDizygotic()
Getter for property dizygotic.

Returns:
Value of property dizygotic.

setDizygotic

public void setDizygotic(boolean rhs)
Setter for property dizygotic.

Parameters:
rhs - New value of property dizygotic.

isMonozygotic

public boolean isMonozygotic()
Getter for property monozygotic.

Returns:
Value of property monozygotic.

setMonozygotic

public void setMonozygotic(boolean rhs)
Setter for property monozygotic.

Parameters:
rhs - New value of property monozygotic.

getShadowupn

public java.lang.String getShadowupn()
Getter for property shadowupn.

Returns:
Value of property shadowupn.

setShadowupn

public void setShadowupn(java.lang.String rhs)
Setter for property shadowupn.

Parameters:
rhs - New value of property shadowupn.

getExternalkey

public java.lang.String getExternalkey()
Getter for property externalkey.

Returns:
Value of property externalkey.

setExternalkey

public void setExternalkey(java.lang.String externalkey)
Setter for property externalkey.

Parameters:
externalkey - New value of property externalkey.

getChildlineRL

public RelationshipLine getChildlineRL()
Getter for property childlineRL.

Returns:
Value of property childlineRL.

setChildlineRL

public void setChildlineRL(RelationshipLine childlineRL)
Setter for property childlineRL.

Parameters:
childlineRL - New value of property childlineRL.

getSiblinglineRL

public RelationshipLine getSiblinglineRL()
Getter for property siblinglineRL.

Returns:
Value of property siblinglineRL.

setSiblinglineRL

public void setSiblinglineRL(RelationshipLine siblinglineRL)
Setter for property siblinglineRL.

Parameters:
siblinglineRL - New value of property siblinglineRL.

getTwinlineRL

public RelationshipLine getTwinlineRL()
Getter for property twinlineRL.

Returns:
Value of property twinlineRL.

setTwinlineRL

public void setTwinlineRL(RelationshipLine twinlineRL)
Setter for property twinlineRL.

Parameters:
twinlineRL - New value of property twinlineRL.

getDataitems

public java.util.Map<java.lang.Integer,Data> getDataitems()
Getter for property dataitems.

Returns:
Value of property dataitems.

setDataitems

public void setDataitems(java.util.Map<java.lang.Integer,Data> rhs)
Setter for property dataitems. All data objects for this Individual will be kept in this Map/table keyed by the field names and with the Map.Entry as the data.

Parameters:
rhs - New value of property dataitems.

getData

public Data getData(java.lang.String fieldname)
Deprecated. Retrieves the field value for an item with the specified field name.

Parameters:
fieldname - The name of the field or column in the Individual database that identifies the required data.
Returns:
The data identified by this field or null if no such field exists. To get the actual data value you will have to query the Data object for the vaue of the field Data.getData(Fieldname) and then convert it to the appropriate object type e.g. String by a class cast since the value returned by the later field is a type Object.

setData

public void setData(java.lang.String fieldname,
                    Data data)
Deprecated. Adds the specified data item to the Individual database using the specified field name as the column heading or fieldname. If data exists in this field already, it will be overitten without warning.

Parameters:
fieldname - The name of the field or column in the Individual database that identifies the data to be written
data - The data to be written to the Individual database

setData

public void setData(Data data)
Adds the specified data item to the Individual database using the specified field name as the column heading or fieldname. If data exists in this field already, it will be overitten without warning.

Parameters:
data - The data to be written to the Individual database

getChromosome

public Chromosome getChromosome()
Getter for property chromosome. The chromosome being tracked on this pedigree. If an Individual is not typed and hence has no genetic tracking data specified, the chromosome property will be NULL and hence this method will return NULL. Introcuced as of release 1.01 of the Pedigree JavaBean.

Returns:
Value of property chromosome or NULL if no chromosome is being tracked on this Individual
Since:
Version 1.01 Added to enable haplotyping of marker data

setChromosome

public void setChromosome(Chromosome rhs)
Setter for property chromosome. The chromosome being tracked on this pedigree. If an Individual is not typed and hence has no genetic tracking data specified, the chromosome property will be NULL. Introcuced as of release 1.01 of the Pedigree JavaBean.

Parameters:
rhs - New value of property chromosome.
Since:
Version 1.01 Added to enable haplotyping of marker data

resetOldestGeneration

public static void resetOldestGeneration()
Resets the oldest generation to its default value. This usually happens when a new family is created in which case the class variable has to be set for the new family


resetYoungestGeneration

public static void resetYoungestGeneration()
Resets the generation of the youngest Individual in this family/pedigree. This usually happens when a new family is created in which case the class variable has to be set for the new family


getSubtext

public Subtext getSubtext()
Returns:
The Subtext object for this Individual or null if no Subtext object is assigned.

setSubtext

public void setSubtext(Subtext aSubtext)
Sets the new Subtext object for this Individual

Parameters:
aSubtext - The new Subtext object to be assigned