
package gov.niem.niem.niem_core._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.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
import gov.niem.niem.structures._2.ComplexObjectType;
import gov.ojp.it.gra.awie.wq._1_0.awieextension.WarrantDetailQueryRequestType;
import gov.ojp.it.gra.awie.wq._1_0.awieextension.WarrantDetailQueryResponseType;
import gov.ojp.it.gra.awie.wq._1_0.awieextension.WarrantSummaryQueryRequestType;
import gov.ojp.it.gra.awie.wq._1_0.awieextension.WarrantSummaryQueryResponseType;
import org.ncsconline.reference.arrestwarrant._2.ArrestWarrantDocumentType;


/**
 * <p>Java class for DocumentType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="DocumentType">
 *   &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}DocumentCategoryText" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}DocumentExpirationDate" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}DocumentStatus" maxOccurs="unbounded" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/extension>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DocumentType", propOrder = {
    "documentCategoryText",
    "documentExpirationDate",
    "documentStatus"
})
@XmlSeeAlso({
    org.ncsconline.reference.arrestwarrantextension._2.DocumentType.class,
    WarrantDetailQueryRequestType.class,
    WarrantDetailQueryResponseType.class,
    WarrantSummaryQueryResponseType.class,
    WarrantSummaryQueryRequestType.class,
    ArrestWarrantDocumentType.class
})
public class DocumentType
    extends ComplexObjectType
{

    @XmlElement(name = "DocumentCategoryText", nillable = true)
    protected List<TextType> documentCategoryText;
    @XmlElement(name = "DocumentExpirationDate", nillable = true)
    protected List<DateType> documentExpirationDate;
    @XmlElement(name = "DocumentStatus", nillable = true)
    protected List<StatusType> documentStatus;

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

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

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

}
