/**
 * PRPAMT201301UV02NonPersonLivingSubject.java
 * <p>
 * File generated from the prpamt201301UV02::PRPAMT201301UV02NonPersonLivingSubject uml Class
 * Generated by IHE - europe, gazelle team
 */
package net.ihe.gazelle.hl7v3.prpamt201301UV02;

import java.io.Serial;
import java.util.ArrayList;
import java.util.List;

import jakarta.xml.bind.JAXBContext;
import jakarta.xml.bind.JAXBException;
import jakarta.xml.bind.Marshaller;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
import jakarta.xml.bind.annotation.XmlAttribute;
import jakarta.xml.bind.annotation.XmlElement;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlTransient;
import jakarta.xml.bind.annotation.XmlType;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import net.ihe.gazelle.gen.common.ConstraintValidatorModule;

import org.w3c.dom.Document;
import org.w3c.dom.Node;


/**
 * Description of the class PRPAMT201301UV02NonPersonLivingSubject.
 *
 */

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "PRPA_MT201301UV02.NonPersonLivingSubject", propOrder = {
	"realmCode",
	"typeId",
	"templateId",
	"id",
	"code",
	"name",
	"desc",
	"existenceTime",
	"telecom",
	"riskCode",
	"handlingCode",
	"administrativeGenderCode",
	"birthTime",
	"deceasedInd",
	"deceasedTime",
	"multipleBirthInd",
	"multipleBirthOrderNumber",
	"organDonorInd",
	"strainText",
	"genderStatusCode",
	"asPatientOfOtherProvider",
	"asMember",
	"asOtherIDs",
	"contactParty",
	"guardian",
	"personalRelationship",
	"careGiver",
	"birthPlace",
	"guarantorRole",
	"classCode",
	"determinerCode",
	"nullFlavor"
})
@XmlRootElement(name = "PRPA_MT201301UV02.NonPersonLivingSubject")
public class PRPAMT201301UV02NonPersonLivingSubject implements java.io.Serializable {
	
	/**
	 * 
	 */
	@Serial
    private static final long serialVersionUID = 1L;

	
	@XmlElement(name = "realmCode", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.datatypes.CS> realmCode;
	@XmlElement(name = "typeId", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.II typeId;
	@XmlElement(name = "templateId", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.datatypes.II> templateId;
	@XmlElement(name = "id", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.datatypes.II> id;
	@XmlElement(name = "code", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.CE code;
	@XmlElement(name = "name", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.datatypes.EN> name;
	@XmlElement(name = "desc", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.ED desc;
	@XmlElement(name = "existenceTime", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.IVLTS existenceTime;
	@XmlElement(name = "telecom", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.datatypes.TEL> telecom;
	@XmlElement(name = "riskCode", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.datatypes.CE> riskCode;
	@XmlElement(name = "handlingCode", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.datatypes.CE> handlingCode;
	@XmlElement(name = "administrativeGenderCode", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.CE administrativeGenderCode;
	@XmlElement(name = "birthTime", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.TS birthTime;
	@XmlElement(name = "deceasedInd", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.BL deceasedInd;
	@XmlElement(name = "deceasedTime", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.TS deceasedTime;
	@XmlElement(name = "multipleBirthInd", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.BL multipleBirthInd;
	@XmlElement(name = "multipleBirthOrderNumber", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.INT multipleBirthOrderNumber;
	@XmlElement(name = "organDonorInd", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.BL organDonorInd;
	@XmlElement(name = "strainText", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.ED strainText;
	@XmlElement(name = "genderStatusCode", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.CE genderStatusCode;
	@XmlElement(name = "asPatientOfOtherProvider", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02PatientOfOtherProvider> asPatientOfOtherProvider;
	@XmlElement(name = "asMember", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02Member> asMember;
	@XmlElement(name = "asOtherIDs", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02OtherIDs> asOtherIDs;
	@XmlElement(name = "contactParty", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02ContactParty> contactParty;
	@XmlElement(name = "guardian", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02Guardian> guardian;
	@XmlElement(name = "personalRelationship", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02PersonalRelationship> personalRelationship;
	@XmlElement(name = "careGiver", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02CareGiver> careGiver;
	@XmlElement(name = "birthPlace", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02BirthPlace birthPlace;
	@XmlElement(name = "guarantorRole", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.coctmt670000UV04.COCTMT670000UV04GuarantorRole> guarantorRole;
	@XmlAttribute(name = "classCode", required = true)
	public net.ihe.gazelle.hl7v3.voc.EntityClassNonPersonLivingSubject classCode;
	@XmlAttribute(name = "determinerCode")
	public net.ihe.gazelle.hl7v3.voc.EntityDeterminer determinerCode;
	@XmlAttribute(name = "nullFlavor")
	public net.ihe.gazelle.hl7v3.voc.NullFlavor nullFlavor;
	
	/**
	 * An attribute containing marshalled element node
	 */
	@XmlTransient
	private org.w3c.dom.Node _xmlNodePresentation;
	
	
	/**
	 * Return realmCode.
	 * @return realmCode
	 */
	public List<net.ihe.gazelle.hl7v3.datatypes.CS> getRealmCode() {
		if (realmCode == null) {
	        realmCode = new ArrayList<>();
	    }
	    return realmCode;
	}
	
	/**
	 * Set a value to attribute realmCode.
     */
	public void setRealmCode(List<net.ihe.gazelle.hl7v3.datatypes.CS> realmCode) {
	    this.realmCode = realmCode;
	}
	
	
	
	/**
	 * Add a realmCode to the realmCode collection.
	 * @param realmCode_elt Element to add.
	 */
	public void addRealmCode(net.ihe.gazelle.hl7v3.datatypes.CS realmCode_elt) {
	    this.realmCode.add(realmCode_elt);
	}
	
	/**
	 * Remove a realmCode to the realmCode collection.
	 * @param realmCode_elt Element to remove
	 */
	public void removeRealmCode(net.ihe.gazelle.hl7v3.datatypes.CS realmCode_elt) {
	    this.realmCode.remove(realmCode_elt);
	}
	
	/**
	 * Return typeId.
	 * @return typeId
	 */
	public net.ihe.gazelle.hl7v3.datatypes.II getTypeId() {
	    return typeId;
	}
	
	/**
	 * Set a value to attribute typeId.
     */
	public void setTypeId(net.ihe.gazelle.hl7v3.datatypes.II typeId) {
	    this.typeId = typeId;
	}
	
	
	
	
	/**
	 * Return templateId.
	 * @return templateId
	 */
	public List<net.ihe.gazelle.hl7v3.datatypes.II> getTemplateId() {
		if (templateId == null) {
	        templateId = new ArrayList<>();
	    }
	    return templateId;
	}
	
	/**
	 * Set a value to attribute templateId.
     */
	public void setTemplateId(List<net.ihe.gazelle.hl7v3.datatypes.II> templateId) {
	    this.templateId = templateId;
	}
	
	
	
	/**
	 * Add a templateId to the templateId collection.
	 * @param templateId_elt Element to add.
	 */
	public void addTemplateId(net.ihe.gazelle.hl7v3.datatypes.II templateId_elt) {
	    this.templateId.add(templateId_elt);
	}
	
	/**
	 * Remove a templateId to the templateId collection.
	 * @param templateId_elt Element to remove
	 */
	public void removeTemplateId(net.ihe.gazelle.hl7v3.datatypes.II templateId_elt) {
	    this.templateId.remove(templateId_elt);
	}
	
	/**
	 * Return id.
	 * @return id
	 */
	public List<net.ihe.gazelle.hl7v3.datatypes.II> getId() {
		if (id == null) {
	        id = new ArrayList<>();
	    }
	    return id;
	}
	
	/**
	 * Set a value to attribute id.
     */
	public void setId(List<net.ihe.gazelle.hl7v3.datatypes.II> id) {
	    this.id = id;
	}
	
	
	
	/**
	 * Add a id to the id collection.
	 * @param id_elt Element to add.
	 */
	public void addId(net.ihe.gazelle.hl7v3.datatypes.II id_elt) {
	    this.id.add(id_elt);
	}
	
	/**
	 * Remove a id to the id collection.
	 * @param id_elt Element to remove
	 */
	public void removeId(net.ihe.gazelle.hl7v3.datatypes.II id_elt) {
	    this.id.remove(id_elt);
	}
	
	/**
	 * Return code.
	 * @return code
	 */
	public net.ihe.gazelle.hl7v3.datatypes.CE getCode() {
	    return code;
	}
	
	/**
	 * Set a value to attribute code.
     */
	public void setCode(net.ihe.gazelle.hl7v3.datatypes.CE code) {
	    this.code = code;
	}
	
	
	
	
	/**
	 * Return name.
	 * @return name
	 */
	public List<net.ihe.gazelle.hl7v3.datatypes.EN> getName() {
		if (name == null) {
	        name = new ArrayList<>();
	    }
	    return name;
	}
	
	/**
	 * Set a value to attribute name.
     */
	public void setName(List<net.ihe.gazelle.hl7v3.datatypes.EN> name) {
	    this.name = name;
	}
	
	
	
	/**
	 * Add a name to the name collection.
	 * @param name_elt Element to add.
	 */
	public void addName(net.ihe.gazelle.hl7v3.datatypes.EN name_elt) {
	    this.name.add(name_elt);
	}
	
	/**
	 * Remove a name to the name collection.
	 * @param name_elt Element to remove
	 */
	public void removeName(net.ihe.gazelle.hl7v3.datatypes.EN name_elt) {
	    this.name.remove(name_elt);
	}
	
	/**
	 * Return desc.
	 * @return desc
	 */
	public net.ihe.gazelle.hl7v3.datatypes.ED getDesc() {
	    return desc;
	}
	
	/**
	 * Set a value to attribute desc.
     */
	public void setDesc(net.ihe.gazelle.hl7v3.datatypes.ED desc) {
	    this.desc = desc;
	}
	
	
	
	
	/**
	 * Return existenceTime.
	 * @return existenceTime
	 */
	public net.ihe.gazelle.hl7v3.datatypes.IVLTS getExistenceTime() {
	    return existenceTime;
	}
	
	/**
	 * Set a value to attribute existenceTime.
     */
	public void setExistenceTime(net.ihe.gazelle.hl7v3.datatypes.IVLTS existenceTime) {
	    this.existenceTime = existenceTime;
	}
	
	
	
	
	/**
	 * Return telecom.
	 * @return telecom
	 */
	public List<net.ihe.gazelle.hl7v3.datatypes.TEL> getTelecom() {
		if (telecom == null) {
	        telecom = new ArrayList<>();
	    }
	    return telecom;
	}
	
	/**
	 * Set a value to attribute telecom.
     */
	public void setTelecom(List<net.ihe.gazelle.hl7v3.datatypes.TEL> telecom) {
	    this.telecom = telecom;
	}
	
	
	
	/**
	 * Add a telecom to the telecom collection.
	 * @param telecom_elt Element to add.
	 */
	public void addTelecom(net.ihe.gazelle.hl7v3.datatypes.TEL telecom_elt) {
	    this.telecom.add(telecom_elt);
	}
	
	/**
	 * Remove a telecom to the telecom collection.
	 * @param telecom_elt Element to remove
	 */
	public void removeTelecom(net.ihe.gazelle.hl7v3.datatypes.TEL telecom_elt) {
	    this.telecom.remove(telecom_elt);
	}
	
	/**
	 * Return riskCode.
	 * @return riskCode
	 */
	public List<net.ihe.gazelle.hl7v3.datatypes.CE> getRiskCode() {
		if (riskCode == null) {
	        riskCode = new ArrayList<>();
	    }
	    return riskCode;
	}
	
	/**
	 * Set a value to attribute riskCode.
     */
	public void setRiskCode(List<net.ihe.gazelle.hl7v3.datatypes.CE> riskCode) {
	    this.riskCode = riskCode;
	}
	
	
	
	/**
	 * Add a riskCode to the riskCode collection.
	 * @param riskCode_elt Element to add.
	 */
	public void addRiskCode(net.ihe.gazelle.hl7v3.datatypes.CE riskCode_elt) {
	    this.riskCode.add(riskCode_elt);
	}
	
	/**
	 * Remove a riskCode to the riskCode collection.
	 * @param riskCode_elt Element to remove
	 */
	public void removeRiskCode(net.ihe.gazelle.hl7v3.datatypes.CE riskCode_elt) {
	    this.riskCode.remove(riskCode_elt);
	}
	
	/**
	 * Return handlingCode.
	 * @return handlingCode
	 */
	public List<net.ihe.gazelle.hl7v3.datatypes.CE> getHandlingCode() {
		if (handlingCode == null) {
	        handlingCode = new ArrayList<>();
	    }
	    return handlingCode;
	}
	
	/**
	 * Set a value to attribute handlingCode.
     */
	public void setHandlingCode(List<net.ihe.gazelle.hl7v3.datatypes.CE> handlingCode) {
	    this.handlingCode = handlingCode;
	}
	
	
	
	/**
	 * Add a handlingCode to the handlingCode collection.
	 * @param handlingCode_elt Element to add.
	 */
	public void addHandlingCode(net.ihe.gazelle.hl7v3.datatypes.CE handlingCode_elt) {
	    this.handlingCode.add(handlingCode_elt);
	}
	
	/**
	 * Remove a handlingCode to the handlingCode collection.
	 * @param handlingCode_elt Element to remove
	 */
	public void removeHandlingCode(net.ihe.gazelle.hl7v3.datatypes.CE handlingCode_elt) {
	    this.handlingCode.remove(handlingCode_elt);
	}
	
	/**
	 * Return administrativeGenderCode.
	 * @return administrativeGenderCode
	 */
	public net.ihe.gazelle.hl7v3.datatypes.CE getAdministrativeGenderCode() {
	    return administrativeGenderCode;
	}
	
	/**
	 * Set a value to attribute administrativeGenderCode.
     */
	public void setAdministrativeGenderCode(net.ihe.gazelle.hl7v3.datatypes.CE administrativeGenderCode) {
	    this.administrativeGenderCode = administrativeGenderCode;
	}
	
	
	
	
	/**
	 * Return birthTime.
	 * @return birthTime
	 */
	public net.ihe.gazelle.hl7v3.datatypes.TS getBirthTime() {
	    return birthTime;
	}
	
	/**
	 * Set a value to attribute birthTime.
     */
	public void setBirthTime(net.ihe.gazelle.hl7v3.datatypes.TS birthTime) {
	    this.birthTime = birthTime;
	}
	
	
	
	
	/**
	 * Return deceasedInd.
	 * @return deceasedInd
	 */
	public net.ihe.gazelle.hl7v3.datatypes.BL getDeceasedInd() {
	    return deceasedInd;
	}
	
	/**
	 * Set a value to attribute deceasedInd.
     */
	public void setDeceasedInd(net.ihe.gazelle.hl7v3.datatypes.BL deceasedInd) {
	    this.deceasedInd = deceasedInd;
	}
	
	
	
	
	/**
	 * Return deceasedTime.
	 * @return deceasedTime
	 */
	public net.ihe.gazelle.hl7v3.datatypes.TS getDeceasedTime() {
	    return deceasedTime;
	}
	
	/**
	 * Set a value to attribute deceasedTime.
     */
	public void setDeceasedTime(net.ihe.gazelle.hl7v3.datatypes.TS deceasedTime) {
	    this.deceasedTime = deceasedTime;
	}
	
	
	
	
	/**
	 * Return multipleBirthInd.
	 * @return multipleBirthInd
	 */
	public net.ihe.gazelle.hl7v3.datatypes.BL getMultipleBirthInd() {
	    return multipleBirthInd;
	}
	
	/**
	 * Set a value to attribute multipleBirthInd.
     */
	public void setMultipleBirthInd(net.ihe.gazelle.hl7v3.datatypes.BL multipleBirthInd) {
	    this.multipleBirthInd = multipleBirthInd;
	}
	
	
	
	
	/**
	 * Return multipleBirthOrderNumber.
	 * @return multipleBirthOrderNumber
	 */
	public net.ihe.gazelle.hl7v3.datatypes.INT getMultipleBirthOrderNumber() {
	    return multipleBirthOrderNumber;
	}
	
	/**
	 * Set a value to attribute multipleBirthOrderNumber.
     */
	public void setMultipleBirthOrderNumber(net.ihe.gazelle.hl7v3.datatypes.INT multipleBirthOrderNumber) {
	    this.multipleBirthOrderNumber = multipleBirthOrderNumber;
	}
	
	
	
	
	/**
	 * Return organDonorInd.
	 * @return organDonorInd
	 */
	public net.ihe.gazelle.hl7v3.datatypes.BL getOrganDonorInd() {
	    return organDonorInd;
	}
	
	/**
	 * Set a value to attribute organDonorInd.
     */
	public void setOrganDonorInd(net.ihe.gazelle.hl7v3.datatypes.BL organDonorInd) {
	    this.organDonorInd = organDonorInd;
	}
	
	
	
	
	/**
	 * Return strainText.
	 * @return strainText
	 */
	public net.ihe.gazelle.hl7v3.datatypes.ED getStrainText() {
	    return strainText;
	}
	
	/**
	 * Set a value to attribute strainText.
     */
	public void setStrainText(net.ihe.gazelle.hl7v3.datatypes.ED strainText) {
	    this.strainText = strainText;
	}
	
	
	
	
	/**
	 * Return genderStatusCode.
	 * @return genderStatusCode
	 */
	public net.ihe.gazelle.hl7v3.datatypes.CE getGenderStatusCode() {
	    return genderStatusCode;
	}
	
	/**
	 * Set a value to attribute genderStatusCode.
     */
	public void setGenderStatusCode(net.ihe.gazelle.hl7v3.datatypes.CE genderStatusCode) {
	    this.genderStatusCode = genderStatusCode;
	}
	
	
	
	
	/**
	 * Return asPatientOfOtherProvider.
	 * @return asPatientOfOtherProvider
	 */
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02PatientOfOtherProvider> getAsPatientOfOtherProvider() {
		if (asPatientOfOtherProvider == null) {
	        asPatientOfOtherProvider = new ArrayList<>();
	    }
	    return asPatientOfOtherProvider;
	}
	
	/**
	 * Set a value to attribute asPatientOfOtherProvider.
     */
	public void setAsPatientOfOtherProvider(List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02PatientOfOtherProvider> asPatientOfOtherProvider) {
	    this.asPatientOfOtherProvider = asPatientOfOtherProvider;
	}
	
	
	
	/**
	 * Add a asPatientOfOtherProvider to the asPatientOfOtherProvider collection.
	 * @param asPatientOfOtherProvider_elt Element to add.
	 */
	public void addAsPatientOfOtherProvider(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02PatientOfOtherProvider asPatientOfOtherProvider_elt) {
	    this.asPatientOfOtherProvider.add(asPatientOfOtherProvider_elt);
	}
	
	/**
	 * Remove a asPatientOfOtherProvider to the asPatientOfOtherProvider collection.
	 * @param asPatientOfOtherProvider_elt Element to remove
	 */
	public void removeAsPatientOfOtherProvider(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02PatientOfOtherProvider asPatientOfOtherProvider_elt) {
	    this.asPatientOfOtherProvider.remove(asPatientOfOtherProvider_elt);
	}
	
	/**
	 * Return asMember.
	 * @return asMember
	 */
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02Member> getAsMember() {
		if (asMember == null) {
	        asMember = new ArrayList<>();
	    }
	    return asMember;
	}
	
	/**
	 * Set a value to attribute asMember.
     */
	public void setAsMember(List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02Member> asMember) {
	    this.asMember = asMember;
	}
	
	
	
	/**
	 * Add a asMember to the asMember collection.
	 * @param asMember_elt Element to add.
	 */
	public void addAsMember(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02Member asMember_elt) {
	    this.asMember.add(asMember_elt);
	}
	
	/**
	 * Remove a asMember to the asMember collection.
	 * @param asMember_elt Element to remove
	 */
	public void removeAsMember(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02Member asMember_elt) {
	    this.asMember.remove(asMember_elt);
	}
	
	/**
	 * Return asOtherIDs.
	 * @return asOtherIDs
	 */
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02OtherIDs> getAsOtherIDs() {
		if (asOtherIDs == null) {
	        asOtherIDs = new ArrayList<>();
	    }
	    return asOtherIDs;
	}
	
	/**
	 * Set a value to attribute asOtherIDs.
     */
	public void setAsOtherIDs(List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02OtherIDs> asOtherIDs) {
	    this.asOtherIDs = asOtherIDs;
	}
	
	
	
	/**
	 * Add a asOtherIDs to the asOtherIDs collection.
	 * @param asOtherIDs_elt Element to add.
	 */
	public void addAsOtherIDs(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02OtherIDs asOtherIDs_elt) {
	    this.asOtherIDs.add(asOtherIDs_elt);
	}
	
	/**
	 * Remove a asOtherIDs to the asOtherIDs collection.
	 * @param asOtherIDs_elt Element to remove
	 */
	public void removeAsOtherIDs(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02OtherIDs asOtherIDs_elt) {
	    this.asOtherIDs.remove(asOtherIDs_elt);
	}
	
	/**
	 * Return contactParty.
	 * @return contactParty
	 */
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02ContactParty> getContactParty() {
		if (contactParty == null) {
	        contactParty = new ArrayList<>();
	    }
	    return contactParty;
	}
	
	/**
	 * Set a value to attribute contactParty.
     */
	public void setContactParty(List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02ContactParty> contactParty) {
	    this.contactParty = contactParty;
	}
	
	
	
	/**
	 * Add a contactParty to the contactParty collection.
	 * @param contactParty_elt Element to add.
	 */
	public void addContactParty(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02ContactParty contactParty_elt) {
	    this.contactParty.add(contactParty_elt);
	}
	
	/**
	 * Remove a contactParty to the contactParty collection.
	 * @param contactParty_elt Element to remove
	 */
	public void removeContactParty(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02ContactParty contactParty_elt) {
	    this.contactParty.remove(contactParty_elt);
	}
	
	/**
	 * Return guardian.
	 * @return guardian
	 */
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02Guardian> getGuardian() {
		if (guardian == null) {
	        guardian = new ArrayList<>();
	    }
	    return guardian;
	}
	
	/**
	 * Set a value to attribute guardian.
     */
	public void setGuardian(List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02Guardian> guardian) {
	    this.guardian = guardian;
	}
	
	
	
	/**
	 * Add a guardian to the guardian collection.
	 * @param guardian_elt Element to add.
	 */
	public void addGuardian(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02Guardian guardian_elt) {
	    this.guardian.add(guardian_elt);
	}
	
	/**
	 * Remove a guardian to the guardian collection.
	 * @param guardian_elt Element to remove
	 */
	public void removeGuardian(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02Guardian guardian_elt) {
	    this.guardian.remove(guardian_elt);
	}
	
	/**
	 * Return personalRelationship.
	 * @return personalRelationship
	 */
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02PersonalRelationship> getPersonalRelationship() {
		if (personalRelationship == null) {
	        personalRelationship = new ArrayList<>();
	    }
	    return personalRelationship;
	}
	
	/**
	 * Set a value to attribute personalRelationship.
     */
	public void setPersonalRelationship(List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02PersonalRelationship> personalRelationship) {
	    this.personalRelationship = personalRelationship;
	}
	
	
	
	/**
	 * Add a personalRelationship to the personalRelationship collection.
	 * @param personalRelationship_elt Element to add.
	 */
	public void addPersonalRelationship(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02PersonalRelationship personalRelationship_elt) {
	    this.personalRelationship.add(personalRelationship_elt);
	}
	
	/**
	 * Remove a personalRelationship to the personalRelationship collection.
	 * @param personalRelationship_elt Element to remove
	 */
	public void removePersonalRelationship(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02PersonalRelationship personalRelationship_elt) {
	    this.personalRelationship.remove(personalRelationship_elt);
	}
	
	/**
	 * Return careGiver.
	 * @return careGiver
	 */
	public List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02CareGiver> getCareGiver() {
		if (careGiver == null) {
	        careGiver = new ArrayList<>();
	    }
	    return careGiver;
	}
	
	/**
	 * Set a value to attribute careGiver.
     */
	public void setCareGiver(List<net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02CareGiver> careGiver) {
	    this.careGiver = careGiver;
	}
	
	
	
	/**
	 * Add a careGiver to the careGiver collection.
	 * @param careGiver_elt Element to add.
	 */
	public void addCareGiver(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02CareGiver careGiver_elt) {
	    this.careGiver.add(careGiver_elt);
	}
	
	/**
	 * Remove a careGiver to the careGiver collection.
	 * @param careGiver_elt Element to remove
	 */
	public void removeCareGiver(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02CareGiver careGiver_elt) {
	    this.careGiver.remove(careGiver_elt);
	}
	
	/**
	 * Return birthPlace.
	 * @return birthPlace
	 */
	public net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02BirthPlace getBirthPlace() {
	    return birthPlace;
	}
	
	/**
	 * Set a value to attribute birthPlace.
     */
	public void setBirthPlace(net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02BirthPlace birthPlace) {
	    this.birthPlace = birthPlace;
	}
	
	
	
	
	/**
	 * Return guarantorRole.
	 * @return guarantorRole
	 */
	public List<net.ihe.gazelle.hl7v3.coctmt670000UV04.COCTMT670000UV04GuarantorRole> getGuarantorRole() {
		if (guarantorRole == null) {
	        guarantorRole = new ArrayList<>();
	    }
	    return guarantorRole;
	}
	
	/**
	 * Set a value to attribute guarantorRole.
     */
	public void setGuarantorRole(List<net.ihe.gazelle.hl7v3.coctmt670000UV04.COCTMT670000UV04GuarantorRole> guarantorRole) {
	    this.guarantorRole = guarantorRole;
	}
	
	
	
	/**
	 * Add a guarantorRole to the guarantorRole collection.
	 * @param guarantorRole_elt Element to add.
	 */
	public void addGuarantorRole(net.ihe.gazelle.hl7v3.coctmt670000UV04.COCTMT670000UV04GuarantorRole guarantorRole_elt) {
	    this.guarantorRole.add(guarantorRole_elt);
	}
	
	/**
	 * Remove a guarantorRole to the guarantorRole collection.
	 * @param guarantorRole_elt Element to remove
	 */
	public void removeGuarantorRole(net.ihe.gazelle.hl7v3.coctmt670000UV04.COCTMT670000UV04GuarantorRole guarantorRole_elt) {
	    this.guarantorRole.remove(guarantorRole_elt);
	}
	
	/**
	 * Return classCode.
	 * @return classCode
	 */
	public net.ihe.gazelle.hl7v3.voc.EntityClassNonPersonLivingSubject getClassCode() {
	    return classCode;
	}
	
	/**
	 * Set a value to attribute classCode.
     */
	public void setClassCode(net.ihe.gazelle.hl7v3.voc.EntityClassNonPersonLivingSubject classCode) {
	    this.classCode = classCode;
	}
	
	
	
	
	/**
	 * Return determinerCode.
	 * @return determinerCode
	 */
	public net.ihe.gazelle.hl7v3.voc.EntityDeterminer getDeterminerCode() {
	    return determinerCode;
	}
	
	/**
	 * Set a value to attribute determinerCode.
     */
	public void setDeterminerCode(net.ihe.gazelle.hl7v3.voc.EntityDeterminer determinerCode) {
	    this.determinerCode = determinerCode;
	}
	
	
	
	
	/**
	 * Return nullFlavor.
	 * @return nullFlavor
	 */
	public net.ihe.gazelle.hl7v3.voc.NullFlavor getNullFlavor() {
	    return nullFlavor;
	}
	
	/**
	 * Set a value to attribute nullFlavor.
     */
	public void setNullFlavor(net.ihe.gazelle.hl7v3.voc.NullFlavor nullFlavor) {
	    this.nullFlavor = nullFlavor;
	}
	
	
	
	
	
	public Node get_xmlNodePresentation() {
		if (_xmlNodePresentation == null){
				JAXBContext jc;
				DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
				dbf.setNamespaceAware(true);
				DocumentBuilder db = null;
				Document doc = null;
				try {
					db = dbf.newDocumentBuilder();
					doc = db.newDocument();
				} catch (ParserConfigurationException ignored) {}
				try {
					jc = JAXBContext.newInstance("net.ihe.gazelle.hl7v3.prpamt201301UV02");
					Marshaller m = jc.createMarshaller();
					m.marshal(this, doc);
					_xmlNodePresentation = doc.getElementsByTagNameNS("urn:hl7-org:v3", "PRPA_MT201301UV02.NonPersonLivingSubject").item(0);
				} catch (JAXBException e) {
					try{
						db = dbf.newDocumentBuilder();
						_xmlNodePresentation = db.newDocument();
					}
					catch(Exception ignored){}
				}
			}
			return _xmlNodePresentation;
	}
	
	public void set_xmlNodePresentation(Node _xmlNodePresentation) {
		this._xmlNodePresentation = _xmlNodePresentation;
	}
	
	
	

	
	/**
     * validate by a module of validation
     * 
     */
   public static void validateByModule(PRPAMT201301UV02NonPersonLivingSubject pRPAMT201301UV02NonPersonLivingSubject, String _location, ConstraintValidatorModule cvm, List<net.ihe.gazelle.validation.Notification> diagnostic){
   		if (pRPAMT201301UV02NonPersonLivingSubject != null){
   			cvm.validate(pRPAMT201301UV02NonPersonLivingSubject, _location, diagnostic);
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.datatypes.CS realmCode: pRPAMT201301UV02NonPersonLivingSubject.getRealmCode()){
					net.ihe.gazelle.hl7v3.datatypes.CS.validateByModule(realmCode, _location + "/realmCode[" + i + "]", cvm, diagnostic);
					i++;
				}
			}
			
			net.ihe.gazelle.hl7v3.datatypes.II.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getTypeId(), _location + "/typeId", cvm, diagnostic);
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.datatypes.II templateId: pRPAMT201301UV02NonPersonLivingSubject.getTemplateId()){
					net.ihe.gazelle.hl7v3.datatypes.II.validateByModule(templateId, _location + "/templateId[" + i + "]", cvm, diagnostic);
					i++;
				}
			}
			
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.datatypes.II id: pRPAMT201301UV02NonPersonLivingSubject.getId()){
					net.ihe.gazelle.hl7v3.datatypes.II.validateByModule(id, _location + "/id[" + i + "]", cvm, diagnostic);
					i++;
				}
			}
			
			net.ihe.gazelle.hl7v3.datatypes.CE.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getCode(), _location + "/code", cvm, diagnostic);
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.datatypes.EN name: pRPAMT201301UV02NonPersonLivingSubject.getName()){
					net.ihe.gazelle.hl7v3.datatypes.EN.validateByModule(name, _location + "/name[" + i + "]", cvm, diagnostic);
					i++;
				}
			}
			
			net.ihe.gazelle.hl7v3.datatypes.ED.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getDesc(), _location + "/desc", cvm, diagnostic);
			net.ihe.gazelle.hl7v3.datatypes.IVLTS.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getExistenceTime(), _location + "/existenceTime", cvm, diagnostic);
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.datatypes.TEL telecom: pRPAMT201301UV02NonPersonLivingSubject.getTelecom()){
					net.ihe.gazelle.hl7v3.datatypes.TEL.validateByModule(telecom, _location + "/telecom[" + i + "]", cvm, diagnostic);
					i++;
				}
			}
			
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.datatypes.CE riskCode: pRPAMT201301UV02NonPersonLivingSubject.getRiskCode()){
					net.ihe.gazelle.hl7v3.datatypes.CE.validateByModule(riskCode, _location + "/riskCode[" + i + "]", cvm, diagnostic);
					i++;
				}
			}
			
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.datatypes.CE handlingCode: pRPAMT201301UV02NonPersonLivingSubject.getHandlingCode()){
					net.ihe.gazelle.hl7v3.datatypes.CE.validateByModule(handlingCode, _location + "/handlingCode[" + i + "]", cvm, diagnostic);
					i++;
				}
			}
			
			net.ihe.gazelle.hl7v3.datatypes.CE.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getAdministrativeGenderCode(), _location + "/administrativeGenderCode", cvm, diagnostic);
			net.ihe.gazelle.hl7v3.datatypes.TS.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getBirthTime(), _location + "/birthTime", cvm, diagnostic);
			net.ihe.gazelle.hl7v3.datatypes.BL.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getDeceasedInd(), _location + "/deceasedInd", cvm, diagnostic);
			net.ihe.gazelle.hl7v3.datatypes.TS.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getDeceasedTime(), _location + "/deceasedTime", cvm, diagnostic);
			net.ihe.gazelle.hl7v3.datatypes.BL.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getMultipleBirthInd(), _location + "/multipleBirthInd", cvm, diagnostic);
			net.ihe.gazelle.hl7v3.datatypes.INT.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getMultipleBirthOrderNumber(), _location + "/multipleBirthOrderNumber", cvm, diagnostic);
			net.ihe.gazelle.hl7v3.datatypes.BL.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getOrganDonorInd(), _location + "/organDonorInd", cvm, diagnostic);
			net.ihe.gazelle.hl7v3.datatypes.ED.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getStrainText(), _location + "/strainText", cvm, diagnostic);
			net.ihe.gazelle.hl7v3.datatypes.CE.validateByModule(pRPAMT201301UV02NonPersonLivingSubject.getGenderStatusCode(), _location + "/genderStatusCode", cvm, diagnostic);
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02PatientOfOtherProvider asPatientOfOtherProvider: pRPAMT201301UV02NonPersonLivingSubject.getAsPatientOfOtherProvider()){
					net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02PatientOfOtherProvider.validateByModule(asPatientOfOtherProvider, _location + "/asPatientOfOtherProvider[" + i + "]", cvm, diagnostic);
					i++;
				}
			}
			
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.prpamt201301UV02.PRPAMT201301UV02Member asMember: pRPAMT201301UV02NonPersonLivingSubject.getAsMember()){
