
package gov.niem.niem.niem_core._2;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
import gov.niem.niem.fbi._2.EYECodeType;
import gov.niem.niem.fbi._2.EthnicityCodeType;
import gov.niem.niem.fbi._2.HAICodeType;
import gov.niem.niem.fbi._2.RACCodeType;
import gov.niem.niem.fbi._2.SEXCodeType;
import gov.niem.niem.fbi._2.SKNCodeType;
import gov.niem.niem.structures._2.ComplexObjectType;
import org.ncsconline.reference.arrestwarrantextension._2.AugmentedPersonNameType;


/**
 * <p>Java class for PersonType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="PersonType">
 *   &lt;complexContent>
 *     &lt;extension base="{http://niem.gov/niem/structures/2.0}ComplexObjectType">
 *       &lt;sequence>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonAgeMeasure" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonAlternateName" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonBirthDate" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonCitizenship" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonDigitalImage" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonDigitizedSignatureImage" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonEthnicity" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonEyeColor" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonHairColor" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonHeightMeasure" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonMedicalCondition" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonMilitarySummary" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonName" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonOtherIdentification" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonPhysicalFeature" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonPrimaryLanguage" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonRace" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonSex" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonSkinTone" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonSSNIdentification" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonStateIdentification" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonWeightMeasure" maxOccurs="unbounded" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/extension>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "PersonType", propOrder = {
    "personAgeMeasure",
    "personAlternateName",
    "personBirthDate",
    "personCitizenship",
    "personDigitalImage",
    "personDigitizedSignatureImage",
    "personEthnicity",
    "personEyeColor",
    "personHairColor",
    "personHeightMeasure",
    "personMedicalCondition",
    "personMilitarySummary",
    "personName",
    "personOtherIdentification",
    "personPhysicalFeature",
    "personPrimaryLanguage",
    "personRace",
    "personSex",
    "personSkinTone",
    "personSSNIdentification",
    "personStateIdentification",
    "personWeightMeasure"
})
@XmlSeeAlso({
    org.ncsconline.reference.arrestwarrantextension._2.PersonType.class
})
public class PersonType
    extends ComplexObjectType
{

    @XmlElement(name = "PersonAgeMeasure", nillable = true)
    protected List<TimeMeasureType> personAgeMeasure;
    @XmlElementRef(name = "PersonAlternateName", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false)
    protected List<JAXBElement<? extends PersonNameType>> personAlternateName;
    @XmlElement(name = "PersonBirthDate", nillable = true)
    protected List<DateType> personBirthDate;
    @XmlElementRef(name = "PersonCitizenship", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false)
    protected List<JAXBElement<?>> personCitizenship;
    @XmlElement(name = "PersonDigitalImage", nillable = true)
    protected List<ImageType> personDigitalImage;
    @XmlElement(name = "PersonDigitizedSignatureImage", nillable = true)
    protected List<ImageType> personDigitizedSignatureImage;
    @XmlElementRef(name = "PersonEthnicity", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false)
    protected List<JAXBElement<?>> personEthnicity;
    @XmlElementRef(name = "PersonEyeColor", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false)
    protected List<JAXBElement<?>> personEyeColor;
    @XmlElementRef(name = "PersonHairColor", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false)
    protected List<JAXBElement<?>> personHairColor;
    @XmlElement(name = "PersonHeightMeasure", nillable = true)
    protected List<LengthMeasureType> personHeightMeasure;
    @XmlElement(name = "PersonMedicalCondition", nillable = true)
    protected List<MedicalConditionType> personMedicalCondition;
    @XmlElement(name = "PersonMilitarySummary", nillable = true)
    protected List<MilitarySummaryType> personMilitarySummary;
    @XmlElement(name = "PersonName", nillable = true)
    protected List<PersonNameType> personName;
    @XmlElement(name = "PersonOtherIdentification", nillable = true)
    protected List<IdentificationType> personOtherIdentification;
    @XmlElement(name = "PersonPhysicalFeature", nillable = true)
    protected List<PhysicalFeatureType> personPhysicalFeature;
    @XmlElement(name = "PersonPrimaryLanguage", nillable = true)
    protected List<PersonLanguageType> personPrimaryLanguage;
    @XmlElementRef(name = "PersonRace", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false)
    protected List<JAXBElement<?>> personRace;
    @XmlElementRef(name = "PersonSex", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false)
    protected List<JAXBElement<?>> personSex;
    @XmlElementRef(name = "PersonSkinTone", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false)
    protected List<JAXBElement<?>> personSkinTone;
    @XmlElement(name = "PersonSSNIdentification", nillable = true)
    protected List<IdentificationType> personSSNIdentification;
    @XmlElement(name = "PersonStateIdentification", nillable = true)
    protected List<IdentificationType> personStateIdentification;
    @XmlElement(name = "PersonWeightMeasure", nillable = true)
    protected List<WeightMeasureType> personWeightMeasure;

    /**
     * Gets the value of the personAgeMeasure property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personAgeMeasure property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonAgeMeasure().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link TimeMeasureType }
     * 
     * 
     */
    public List<TimeMeasureType> getPersonAgeMeasure() {
        if (personAgeMeasure == null) {
            personAgeMeasure = new ArrayList<TimeMeasureType>();
        }
        return this.personAgeMeasure;
    }

    /**
     * Gets the value of the personAlternateName property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personAlternateName property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonAlternateName().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JAXBElement }{@code <}{@link AugmentedPersonNameType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonNameType }{@code >}
     * 
     * 
     */
    public List<JAXBElement<? extends PersonNameType>> getPersonAlternateName() {
        if (personAlternateName == null) {
            personAlternateName = new ArrayList<JAXBElement<? extends PersonNameType>>();
        }
        return this.personAlternateName;
    }

    /**
     * Gets the value of the personBirthDate property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personBirthDate property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonBirthDate().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link DateType }
     * 
     * 
     */
    public List<DateType> getPersonBirthDate() {
        if (personBirthDate == null) {
            personBirthDate = new ArrayList<DateType>();
        }
        return this.personBirthDate;
    }

    /**
     * Gets the value of the personCitizenship property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personCitizenship property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonCitizenship().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JAXBElement }{@code <}{@link Object }{@code >}
     * {@link JAXBElement }{@code <}{@link TextType }{@code >}
     * 
     * 
     */
    public List<JAXBElement<?>> getPersonCitizenship() {
        if (personCitizenship == null) {
            personCitizenship = new ArrayList<JAXBElement<?>>();
        }
        return this.personCitizenship;
    }

    /**
     * Gets the value of the personDigitalImage property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personDigitalImage property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonDigitalImage().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ImageType }
     * 
     * 
     */
    public List<ImageType> getPersonDigitalImage() {
        if (personDigitalImage == null) {
            personDigitalImage = new ArrayList<ImageType>();
        }
        return this.personDigitalImage;
    }

    /**
     * Gets the value of the personDigitizedSignatureImage property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personDigitizedSignatureImage property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonDigitizedSignatureImage().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ImageType }
     * 
     * 
     */
    public List<ImageType> getPersonDigitizedSignatureImage() {
        if (personDigitizedSignatureImage == null) {
            personDigitizedSignatureImage = new ArrayList<ImageType>();
        }
        return this.personDigitizedSignatureImage;
    }

    /**
     * Gets the value of the personEthnicity property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personEthnicity property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonEthnicity().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JAXBElement }{@code <}{@link EthnicityCodeType }{@code >}
     * {@link JAXBElement }{@code <}{@link Object }{@code >}
     * 
     * 
     */
    public List<JAXBElement<?>> getPersonEthnicity() {
        if (personEthnicity == null) {
            personEthnicity = new ArrayList<JAXBElement<?>>();
        }
        return this.personEthnicity;
    }

    /**
     * Gets the value of the personEyeColor property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personEyeColor property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonEyeColor().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JAXBElement }{@code <}{@link Object }{@code >}
     * {@link JAXBElement }{@code <}{@link EYECodeType }{@code >}
     * 
     * 
     */
    public List<JAXBElement<?>> getPersonEyeColor() {
        if (personEyeColor == null) {
            personEyeColor = new ArrayList<JAXBElement<?>>();
        }
        return this.personEyeColor;
    }

    /**
     * Gets the value of the personHairColor property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personHairColor property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonHairColor().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JAXBElement }{@code <}{@link Object }{@code >}
     * {@link JAXBElement }{@code <}{@link HAICodeType }{@code >}
     * 
     * 
     */
    public List<JAXBElement<?>> getPersonHairColor() {
        if (personHairColor == null) {
            personHairColor = new ArrayList<JAXBElement<?>>();
        }
        return this.personHairColor;
    }

    /**
     * Gets the value of the personHeightMeasure property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personHeightMeasure property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonHeightMeasure().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link LengthMeasureType }
     * 
     * 
     */
    public List<LengthMeasureType> getPersonHeightMeasure() {
        if (personHeightMeasure == null) {
            personHeightMeasure = new ArrayList<LengthMeasureType>();
        }
        return this.personHeightMeasure;
    }

    /**
     * Gets the value of the personMedicalCondition property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personMedicalCondition property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonMedicalCondition().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link MedicalConditionType }
     * 
     * 
     */
    public List<MedicalConditionType> getPersonMedicalCondition() {
        if (personMedicalCondition == null) {
            personMedicalCondition = new ArrayList<MedicalConditionType>();
        }
        return this.personMedicalCondition;
    }

    /**
     * Gets the value of the personMilitarySummary property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personMilitarySummary property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonMilitarySummary().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link MilitarySummaryType }
     * 
     * 
     */
    public List<MilitarySummaryType> getPersonMilitarySummary() {
        if (personMilitarySummary == null) {
            personMilitarySummary = new ArrayList<MilitarySummaryType>();
        }
        return this.personMilitarySummary;
    }

    /**
     * Gets the value of the personName property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personName property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonName().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link PersonNameType }
     * 
     * 
     */
    public List<PersonNameType> getPersonName() {
        if (personName == null) {
            personName = new ArrayList<PersonNameType>();
        }
        return this.personName;
    }

    /**
     * Gets the value of the personOtherIdentification property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personOtherIdentification property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonOtherIdentification().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link IdentificationType }
     * 
     * 
     */
    public List<IdentificationType> getPersonOtherIdentification() {
        if (personOtherIdentification == null) {
            personOtherIdentification = new ArrayList<IdentificationType>();
        }
        return this.personOtherIdentification;
    }

    /**
     * Gets the value of the personPhysicalFeature property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personPhysicalFeature property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonPhysicalFeature().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link PhysicalFeatureType }
     * 
     * 
     */
    public List<PhysicalFeatureType> getPersonPhysicalFeature() {
        if (personPhysicalFeature == null) {
            personPhysicalFeature = new ArrayList<PhysicalFeatureType>();
        }
        return this.personPhysicalFeature;
    }

    /**
     * Gets the value of the personPrimaryLanguage property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personPrimaryLanguage property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonPrimaryLanguage().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link PersonLanguageType }
     * 
     * 
     */
    public List<PersonLanguageType> getPersonPrimaryLanguage() {
        if (personPrimaryLanguage == null) {
            personPrimaryLanguage = new ArrayList<PersonLanguageType>();
        }
        return this.personPrimaryLanguage;
    }

    /**
     * Gets the value of the personRace property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personRace property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonRace().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JAXBElement }{@code <}{@link TextType }{@code >}
     * {@link JAXBElement }{@code <}{@link Object }{@code >}
     * {@link JAXBElement }{@code <}{@link RACCodeType }{@code >}
     * 
     * 
     */
    public List<JAXBElement<?>> getPersonRace() {
        if (personRace == null) {
            personRace = new ArrayList<JAXBElement<?>>();
        }
        return this.personRace;
    }

    /**
     * Gets the value of the personSex property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personSex property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonSex().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JAXBElement }{@code <}{@link SEXCodeType }{@code >}
     * {@link JAXBElement }{@code <}{@link Object }{@code >}
     * 
     * 
     */
    public List<JAXBElement<?>> getPersonSex() {
        if (personSex == null) {
            personSex = new ArrayList<JAXBElement<?>>();
        }
        return this.personSex;
    }

    /**
     * Gets the value of the personSkinTone property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personSkinTone property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonSkinTone().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JAXBElement }{@code <}{@link SKNCodeType }{@code >}
     * {@link JAXBElement }{@code <}{@link Object }{@code >}
     * 
     * 
     */
    public List<JAXBElement<?>> getPersonSkinTone() {
        if (personSkinTone == null) {
            personSkinTone = new ArrayList<JAXBElement<?>>();
        }
        return this.personSkinTone;
    }

    /**
     * Gets the value of the personSSNIdentification property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personSSNIdentification property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonSSNIdentification().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link IdentificationType }
     * 
     * 
     */
    public List<IdentificationType> getPersonSSNIdentification() {
        if (personSSNIdentification == null) {
            personSSNIdentification = new ArrayList<IdentificationType>();
        }
        return this.personSSNIdentification;
    }

    /**
     * Gets the value of the personStateIdentification property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personStateIdentification property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonStateIdentification().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link IdentificationType }
     * 
     * 
     */
    public List<IdentificationType> getPersonStateIdentification() {
        if (personStateIdentification == null) {
            personStateIdentification = new ArrayList<IdentificationType>();
        }
        return this.personStateIdentification;
    }

    /**
     * Gets the value of the personWeightMeasure property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the personWeightMeasure property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonWeightMeasure().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link WeightMeasureType }
     * 
     * 
     */
    public List<WeightMeasureType> getPersonWeightMeasure() {
        if (personWeightMeasure == null) {
            personWeightMeasure = new ArrayList<WeightMeasureType>();
        }
        return this.personWeightMeasure;
    }

}
