
package org.ncsconline.reference.arrestwarrant._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.XmlElementRef;
import javax.xml.bind.annotation.XmlElementRefs;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
import gov.niem.niem.domains.jxdm._4.ActivityChargeAssociationType;
import gov.niem.niem.domains.jxdm._4.SubjectType;
import gov.niem.niem.domains.jxdm._4.WarrantType;
import gov.niem.niem.niem_core._2.ActivityDocumentAssociationType;
import gov.niem.niem.niem_core._2.ActivityPersonAssociationType;
import gov.niem.niem.niem_core._2.ActivityType;
import gov.niem.niem.niem_core._2.CommercialVehicleType;
import gov.niem.niem.niem_core._2.ContactInformationType;
import gov.niem.niem.niem_core._2.ConveyanceRegistrationType;
import gov.niem.niem.niem_core._2.EntityType;
import gov.niem.niem.niem_core._2.IncidentType;
import gov.niem.niem.niem_core._2.ItemRegistrationAssociationType;
import gov.niem.niem.niem_core._2.LocationType;
import gov.niem.niem.niem_core._2.PersonAssociationType;
import gov.niem.niem.niem_core._2.PersonContactInformationAssociationType;
import gov.niem.niem.niem_core._2.PersonEmploymentAssociationType;
import gov.niem.niem.niem_core._2.PersonLocationAssociationType;
import gov.niem.niem.niem_core._2.PersonUnionAssociationType;
import gov.niem.niem.niem_core._2.VehicleType;
import gov.ojp.it.gra.awie._1_0.awieextension.ArrestWarrantType;
import org.ncsconline.reference.arrestwarrantextension._2.AgencyRoleType;
import org.ncsconline.reference.arrestwarrantextension._2.AugmentedCaseType;
import org.ncsconline.reference.arrestwarrantextension._2.ChargeType;
import org.ncsconline.reference.arrestwarrantextension._2.JudicialOfficialType;
import org.ncsconline.reference.arrestwarrantextension._2.MetadataType;
import org.ncsconline.reference.arrestwarrantextension._2.OrganizationType;
import org.ncsconline.reference.arrestwarrantextension._2.PersonType;


/**
 * The legal document that authorizes a law enforcement officer to arrest a person.
 * 
 * <p>Java class for ArrestWarrantDocumentType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="ArrestWarrantDocumentType">
 *   &lt;complexContent>
 *     &lt;extension base="{http://niem.gov/niem/niem-core/2.0}DocumentType">
 *       &lt;sequence>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}Metadata" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}Case" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}CommercialVehicle" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}ContactInformation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}ConveyanceRegistration" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}CourtCharge" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/domains/jxdm/4.0}CourtOrderRequestEntity" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}Document" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}GrandJuryIndictment" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}Incident" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}Location" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}Organization" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}Person" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}Vehicle" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/domains/jxdm/4.0}Warrant" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}CourtOrderIssuingJudicialOfficial" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}Subject" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}FilingAgencyRole" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}IncareratingAgencyRole" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}OriginatingAgencyRole" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0}PackingAgencyRole" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/domains/jxdm/4.0}ActivityChargeAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/domains/jxdm/4.0}ActivityOriginatingDocumentAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}ConveyanceRegistrationAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/domains/jxdm/4.0}IncidentInformantAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonContactInformationAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonEmploymentAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonLastSeenLocationAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}AcquaintanceAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}CivilUnionAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}CohabitantAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}CoworkerAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}DomesticPartnershipAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}FamilyAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}FriendshipAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}MarriageAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}NeighborAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}PersonAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://niem.gov/niem/niem-core/2.0}StrangerAssociation" maxOccurs="unbounded" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/extension>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ArrestWarrantDocumentType", propOrder = {
    "rest"
})
@XmlSeeAlso({
    ArrestWarrantType.class
})
public class ArrestWarrantDocumentType
    extends gov.niem.niem.niem_core._2.DocumentType
{

    @XmlElementRefs({
        @XmlElementRef(name = "CourtCharge", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "ActivityChargeAssociation", namespace = "http://niem.gov/niem/domains/jxdm/4.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "Subject", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "CoworkerAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "Document", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "ActivityOriginatingDocumentAssociation", namespace = "http://niem.gov/niem/domains/jxdm/4.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "AcquaintanceAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "Organization", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "OriginatingAgencyRole", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "DomesticPartnershipAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "ConveyanceRegistrationAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "Location", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "ContactInformation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "Metadata", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "PackingAgencyRole", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "CourtOrderRequestEntity", namespace = "http://niem.gov/niem/domains/jxdm/4.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "FilingAgencyRole", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "PersonContactInformationAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "NeighborAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "Case", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "CohabitantAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "IncidentInformantAssociation", namespace = "http://niem.gov/niem/domains/jxdm/4.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "MarriageAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "CourtOrderIssuingJudicialOfficial", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "StrangerAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "Vehicle", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "PersonLastSeenLocationAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "FriendshipAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "CommercialVehicle", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "GrandJuryIndictment", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "ConveyanceRegistration", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "PersonAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "PersonEmploymentAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "IncareratingAgencyRole", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "CivilUnionAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "Incident", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "Person", namespace = "http://www.ncsconline.org/reference/ArrestWarrantExtension/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "FamilyAssociation", namespace = "http://niem.gov/niem/niem-core/2.0", type = JAXBElement.class, required = false),
        @XmlElementRef(name = "Warrant", namespace = "http://niem.gov/niem/domains/jxdm/4.0", type = JAXBElement.class, required = false)
    })
    protected List<JAXBElement<?>> rest;

    /**
     * Gets the rest of the content model. 
     * 
     * <p>
     * You are getting this "catch-all" property because of the following reason: 
     * The field name "Metadata" is used by two different parts of a schema. See: 
     * line 22 of file:/C:/JD%20Files/SSPs/STT%20EVAL%20COMPLETED%20BY%20CHAIR/AWIE-WQ_SSP_v_1.0.0/schema/information/AWIE-WQ_IEPD/subset/ArrestWarrant.xsd
     * line 117 of file:/C:/JD%20Files/SSPs/STT%20EVAL%20COMPLETED%20BY%20CHAIR/AWIE-WQ_SSP_v_1.0.0/schema/information/AWIE-WQ_IEPD/subset/niem/structures/2.0/structures.xsd
     * <p>
     * To get rid of this property, apply a property customization to one 
     * of both of the following declarations to change their names: 
     * Gets the value of the rest 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 rest property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getRest().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link JAXBElement }{@code <}{@link ChargeType }{@code >}
     * {@link JAXBElement }{@code <}{@link ActivityChargeAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link SubjectType }{@code >}
     * {@link JAXBElement }{@code <}{@link org.ncsconline.reference.arrestwarrantextension._2.DocumentType }{@code >}
     * {@link JAXBElement }{@code <}{@link OrganizationType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link ActivityDocumentAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link AgencyRoleType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonUnionAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link ItemRegistrationAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link LocationType }{@code >}
     * {@link JAXBElement }{@code <}{@link ContactInformationType }{@code >}
     * {@link JAXBElement }{@code <}{@link EntityType }{@code >}
     * {@link JAXBElement }{@code <}{@link AgencyRoleType }{@code >}
     * {@link JAXBElement }{@code <}{@link MetadataType }{@code >}
     * {@link JAXBElement }{@code <}{@link AgencyRoleType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonContactInformationAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link AugmentedCaseType }{@code >}
     * {@link JAXBElement }{@code <}{@link ActivityPersonAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonUnionAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link JudicialOfficialType }{@code >}
     * {@link JAXBElement }{@code <}{@link VehicleType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonLocationAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link ActivityType }{@code >}
     * {@link JAXBElement }{@code <}{@link CommercialVehicleType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link ConveyanceRegistrationType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonEmploymentAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link AgencyRoleType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonUnionAssociationType }{@code >}
     * {@link JAXBElement }{@code <}{@link IncidentType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonType }{@code >}
     * {@link JAXBElement }{@code <}{@link WarrantType }{@code >}
     * {@link JAXBElement }{@code <}{@link PersonAssociationType }{@code >}
     * 
     * 
     */
    public List<JAXBElement<?>> getRest() {
        if (rest == null) {
            rest = new ArrayList<JAXBElement<?>>();
        }
        return this.rest;
    }

}
