
package org.ncsconline.reference.arrestwarrantextension._2;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import gov.niem.niem.niem_core._2.BiometricType;
import gov.niem.niem.niem_core._2.PassportType;
import gov.niem.niem.niem_core._2.TextType;
import gov.niem.niem.proxy.xsd._2.Boolean;


/**
 * A data type for additional information about a person.
 * 
 * <p>Java class for PersonAugmentationType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="PersonAugmentationType">
 *   &lt;complexContent>
 *     &lt;extension base="{http://niem.gov/niem/domains/jxdm/4.0}PersonAugmentationType">
 *       &lt;sequence>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}InterpreterRequiredIndicator" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}Passport" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}PersonNCICHeightText" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}PersonNCICWeightText" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}PersonMedicalCondition" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}PersonDNA" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}FingerprintSet" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}RetinalScan" maxOccurs="unbounded" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/extension>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "PersonAugmentationType", propOrder = {
    "interpreterRequiredIndicator",
    "passport",
    "personNCICHeightText",
    "personNCICWeightText",
    "personMedicalCondition",
    "personDNA",
    "fingerprintSet",
    "retinalScan"
})
public class PersonAugmentationType
    extends gov.niem.niem.domains.jxdm._4.PersonAugmentationType
{

    @XmlElement(name = "InterpreterRequiredIndicator")
    protected List<Boolean> interpreterRequiredIndicator;
    @XmlElement(name = "Passport", namespace = "http://niem.gov/niem/niem-core/2.0", nillable = true)
    protected List<PassportType> passport;
    @XmlElement(name = "PersonNCICHeightText")
    protected List<TextType> personNCICHeightText;
    @XmlElement(name = "PersonNCICWeightText")
    protected List<TextType> personNCICWeightText;
    @XmlElement(name = "PersonMedicalCondition")
    protected List<MedicalConditionType> personMedicalCondition;
    @XmlElement(name = "PersonDNA")
    protected List<DNAType> personDNA;
    @XmlElement(name = "FingerprintSet")
    protected List<FingerprintSetType> fingerprintSet;
    @XmlElement(name = "RetinalScan")
    protected List<BiometricType> retinalScan;

    /**
     * Gets the value of the interpreterRequiredIndicator 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 interpreterRequiredIndicator property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getInterpreterRequiredIndicator().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link Boolean }
     * 
     * 
     */
    public List<Boolean> getInterpreterRequiredIndicator() {
        if (interpreterRequiredIndicator == null) {
            interpreterRequiredIndicator = new ArrayList<Boolean>();
        }
        return this.interpreterRequiredIndicator;
    }

    /**
     * Gets the value of the passport 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 passport property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPassport().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link PassportType }
     * 
     * 
     */
    public List<PassportType> getPassport() {
        if (passport == null) {
            passport = new ArrayList<PassportType>();
        }
        return this.passport;
    }

    /**
     * Gets the value of the personNCICHeightText 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 personNCICHeightText property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonNCICHeightText().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link TextType }
     * 
     * 
     */
    public List<TextType> getPersonNCICHeightText() {
        if (personNCICHeightText == null) {
            personNCICHeightText = new ArrayList<TextType>();
        }
        return this.personNCICHeightText;
    }

    /**
     * Gets the value of the personNCICWeightText 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 personNCICWeightText property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonNCICWeightText().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link TextType }
     * 
     * 
     */
    public List<TextType> getPersonNCICWeightText() {
        if (personNCICWeightText == null) {
            personNCICWeightText = new ArrayList<TextType>();
        }
        return this.personNCICWeightText;
    }

    /**
     * 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 personDNA 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 personDNA property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPersonDNA().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link DNAType }
     * 
     * 
     */
    public List<DNAType> getPersonDNA() {
        if (personDNA == null) {
            personDNA = new ArrayList<DNAType>();
        }
        return this.personDNA;
    }

    /**
     * Gets the value of the fingerprintSet 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 fingerprintSet property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getFingerprintSet().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link FingerprintSetType }
     * 
     * 
     */
    public List<FingerprintSetType> getFingerprintSet() {
        if (fingerprintSet == null) {
            fingerprintSet = new ArrayList<FingerprintSetType>();
        }
        return this.fingerprintSet;
    }

    /**
     * Gets the value of the retinalScan 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 retinalScan property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getRetinalScan().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link BiometricType }
     * 
     * 
     */
    public List<BiometricType> getRetinalScan() {
        if (retinalScan == null) {
            retinalScan = new ArrayList<BiometricType>();
        }
        return this.retinalScan;
    }

}
