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

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 PRPAIN201306UV02MFMIMT700711UV01ControlActProcess.
 *
 */

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "PRPA_IN201306UV02.MFMI_MT700711UV01.ControlActProcess", propOrder = { "realmCode", "typeId",
		"templateId", "id", "code", "text", "effectiveTime", "priorityCode", "reasonCode", "languageCode", "overseer",
		"authorOrPerformer", "dataEnterer", "informationRecipient", "subject", "reasonOf", "queryAck",
		"queryByParameter", "classCode", "moodCode", "nullFlavor" })
@XmlRootElement(name = "PRPA_IN201306UV02.MFMI_MT700711UV01.ControlActProcess")
public class PRPAIN201306UV02MFMIMT700711UV01ControlActProcess 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.CD code;
	@XmlElement(name = "text", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.ED text;
	@XmlElement(name = "effectiveTime", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.IVLTS effectiveTime;
	@XmlElement(name = "priorityCode", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.datatypes.CE> priorityCode;
	@XmlElement(name = "reasonCode", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.datatypes.CE> reasonCode;
	@XmlElement(name = "languageCode", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.datatypes.CE languageCode;
	@XmlElement(name = "overseer", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Overseer> overseer;
	@XmlElement(name = "authorOrPerformer", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01AuthorOrPerformer> authorOrPerformer;
	@XmlElement(name = "dataEnterer", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01DataEnterer> dataEnterer;
	@XmlElement(name = "informationRecipient", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01InformationRecipient> informationRecipient;
	@XmlElement(name = "subject", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.prpain201306UV02.PRPAIN201306UV02MFMIMT700711UV01Subject1> subject;
	@XmlElement(name = "reasonOf", namespace = "urn:hl7-org:v3")
	public List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Reason> reasonOf;
	@XmlElement(name = "queryAck", required = true, namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01QueryAck queryAck;
	@XmlElement(name = "queryByParameter", namespace = "urn:hl7-org:v3")
	public net.ihe.gazelle.hl7v3.prpamt201306UV02.PRPAMT201306UV02QueryByParameter queryByParameter;
	@XmlAttribute(name = "classCode", required = true)
	public net.ihe.gazelle.hl7v3.voc.ActClassControlAct classCode;
	@XmlAttribute(name = "moodCode", required = true)
	public net.ihe.gazelle.hl7v3.voc.XActMoodIntentEvent moodCode;
	@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.
	 * 
	 * @param 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.
	 * 
	 * @param 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.
	 * 
	 * @param 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.
	 * 
	 * @param 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.CD getCode() {
		return code;
	}

	/**
	 * Set a value to attribute code.
	 * 
	 * @param code
	 *            .
	 */
	public void setCode(net.ihe.gazelle.hl7v3.datatypes.CD code) {
		this.code = code;
	}

	/**
	 * Return text.
	 * 
	 * @return text
	 */
	public net.ihe.gazelle.hl7v3.datatypes.ED getText() {
		return text;
	}

	/**
	 * Set a value to attribute text.
	 * 
	 * @param text
	 *            .
	 */
	public void setText(net.ihe.gazelle.hl7v3.datatypes.ED text) {
		this.text = text;
	}

	/**
	 * Return effectiveTime.
	 * 
	 * @return effectiveTime
	 */
	public net.ihe.gazelle.hl7v3.datatypes.IVLTS getEffectiveTime() {
		return effectiveTime;
	}

	/**
	 * Set a value to attribute effectiveTime.
	 * 
	 * @param effectiveTime
	 *            .
	 */
	public void setEffectiveTime(net.ihe.gazelle.hl7v3.datatypes.IVLTS effectiveTime) {
		this.effectiveTime = effectiveTime;
	}

	/**
	 * Return priorityCode.
	 * 
	 * @return priorityCode
	 */
	public List<net.ihe.gazelle.hl7v3.datatypes.CE> getPriorityCode() {
		if (priorityCode == null) {
			priorityCode = new ArrayList<>();
		}
		return priorityCode;
	}

	/**
	 * Set a value to attribute priorityCode.
	 * 
	 * @param priorityCode
	 *            .
	 */
	public void setPriorityCode(List<net.ihe.gazelle.hl7v3.datatypes.CE> priorityCode) {
		this.priorityCode = priorityCode;
	}

	/**
	 * Add a priorityCode to the priorityCode collection.
	 * 
	 * @param priorityCode_elt
	 *            Element to add.
	 */
	public void addPriorityCode(net.ihe.gazelle.hl7v3.datatypes.CE priorityCode_elt) {
		this.priorityCode.add(priorityCode_elt);
	}

	/**
	 * Remove a priorityCode to the priorityCode collection.
	 * 
	 * @param priorityCode_elt
	 *            Element to remove
	 */
	public void removePriorityCode(net.ihe.gazelle.hl7v3.datatypes.CE priorityCode_elt) {
		this.priorityCode.remove(priorityCode_elt);
	}

	/**
	 * Return reasonCode.
	 * 
	 * @return reasonCode
	 */
	public List<net.ihe.gazelle.hl7v3.datatypes.CE> getReasonCode() {
		if (reasonCode == null) {
			reasonCode = new ArrayList<>();
		}
		return reasonCode;
	}

	/**
	 * Set a value to attribute reasonCode.
	 * 
	 * @param reasonCode
	 *            .
	 */
	public void setReasonCode(List<net.ihe.gazelle.hl7v3.datatypes.CE> reasonCode) {
		this.reasonCode = reasonCode;
	}

	/**
	 * Add a reasonCode to the reasonCode collection.
	 * 
	 * @param reasonCode_elt
	 *            Element to add.
	 */
	public void addReasonCode(net.ihe.gazelle.hl7v3.datatypes.CE reasonCode_elt) {
		this.reasonCode.add(reasonCode_elt);
	}

	/**
	 * Remove a reasonCode to the reasonCode collection.
	 * 
	 * @param reasonCode_elt
	 *            Element to remove
	 */
	public void removeReasonCode(net.ihe.gazelle.hl7v3.datatypes.CE reasonCode_elt) {
		this.reasonCode.remove(reasonCode_elt);
	}

	/**
	 * Return languageCode.
	 * 
	 * @return languageCode
	 */
	public net.ihe.gazelle.hl7v3.datatypes.CE getLanguageCode() {
		return languageCode;
	}

	/**
	 * Set a value to attribute languageCode.
	 * 
	 * @param languageCode
	 *            .
	 */
	public void setLanguageCode(net.ihe.gazelle.hl7v3.datatypes.CE languageCode) {
		this.languageCode = languageCode;
	}

	/**
	 * Return overseer.
	 * 
	 * @return overseer
	 */
	public List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Overseer> getOverseer() {
		if (overseer == null) {
			overseer = new ArrayList<>();
		}
		return overseer;
	}

	/**
	 * Set a value to attribute overseer.
	 * 
	 * @param overseer
	 *            .
	 */
	public void setOverseer(List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Overseer> overseer) {
		this.overseer = overseer;
	}

	/**
	 * Add a overseer to the overseer collection.
	 * 
	 * @param overseer_elt
	 *            Element to add.
	 */
	public void addOverseer(net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Overseer overseer_elt) {
		this.overseer.add(overseer_elt);
	}

	/**
	 * Remove a overseer to the overseer collection.
	 * 
	 * @param overseer_elt
	 *            Element to remove
	 */
	public void removeOverseer(net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Overseer overseer_elt) {
		this.overseer.remove(overseer_elt);
	}

	/**
	 * Return authorOrPerformer.
	 * 
	 * @return authorOrPerformer
	 */
	public List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01AuthorOrPerformer> getAuthorOrPerformer() {
		if (authorOrPerformer == null) {
			authorOrPerformer = new ArrayList<>();
		}
		return authorOrPerformer;
	}

	/**
	 * Set a value to attribute authorOrPerformer.
	 * 
	 * @param authorOrPerformer
	 *            .
	 */
	public void setAuthorOrPerformer(
			List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01AuthorOrPerformer> authorOrPerformer) {
		this.authorOrPerformer = authorOrPerformer;
	}

	/**
	 * Add a authorOrPerformer to the authorOrPerformer collection.
	 * 
	 * @param authorOrPerformer_elt
	 *            Element to add.
	 */
	public void addAuthorOrPerformer(
			net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01AuthorOrPerformer authorOrPerformer_elt) {
		this.authorOrPerformer.add(authorOrPerformer_elt);
	}

	/**
	 * Remove a authorOrPerformer to the authorOrPerformer collection.
	 * 
	 * @param authorOrPerformer_elt
	 *            Element to remove
	 */
	public void removeAuthorOrPerformer(
			net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01AuthorOrPerformer authorOrPerformer_elt) {
		this.authorOrPerformer.remove(authorOrPerformer_elt);
	}

	/**
	 * Return dataEnterer.
	 * 
	 * @return dataEnterer
	 */
	public List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01DataEnterer> getDataEnterer() {
		if (dataEnterer == null) {
			dataEnterer = new ArrayList<>();
		}
		return dataEnterer;
	}

	/**
	 * Set a value to attribute dataEnterer.
	 * 
	 * @param dataEnterer
	 *            .
	 */
	public void setDataEnterer(List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01DataEnterer> dataEnterer) {
		this.dataEnterer = dataEnterer;
	}

	/**
	 * Add a dataEnterer to the dataEnterer collection.
	 * 
	 * @param dataEnterer_elt
	 *            Element to add.
	 */
	public void addDataEnterer(net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01DataEnterer dataEnterer_elt) {
		this.dataEnterer.add(dataEnterer_elt);
	}

	/**
	 * Remove a dataEnterer to the dataEnterer collection.
	 * 
	 * @param dataEnterer_elt
	 *            Element to remove
	 */
	public void removeDataEnterer(net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01DataEnterer dataEnterer_elt) {
		this.dataEnterer.remove(dataEnterer_elt);
	}

	/**
	 * Return informationRecipient.
	 * 
	 * @return informationRecipient
	 */
	public List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01InformationRecipient> getInformationRecipient() {
		if (informationRecipient == null) {
			informationRecipient = new ArrayList<>();
		}
		return informationRecipient;
	}

	/**
	 * Set a value to attribute informationRecipient.
	 * 
	 * @param informationRecipient
	 *            .
	 */
	public void setInformationRecipient(
			List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01InformationRecipient> informationRecipient) {
		this.informationRecipient = informationRecipient;
	}

	/**
	 * Add a informationRecipient to the informationRecipient collection.
	 * 
	 * @param informationRecipient_elt
	 *            Element to add.
	 */
	public void addInformationRecipient(
			net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01InformationRecipient informationRecipient_elt) {
		this.informationRecipient.add(informationRecipient_elt);
	}

	/**
	 * Remove a informationRecipient to the informationRecipient collection.
	 * 
	 * @param informationRecipient_elt
	 *            Element to remove
	 */
	public void removeInformationRecipient(
			net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01InformationRecipient informationRecipient_elt) {
		this.informationRecipient.remove(informationRecipient_elt);
	}

	/**
	 * Return subject.
	 * 
	 * @return subject
	 */
	public List<net.ihe.gazelle.hl7v3.prpain201306UV02.PRPAIN201306UV02MFMIMT700711UV01Subject1> getSubject() {
		if (subject == null) {
			subject = new ArrayList<>();
		}
		return subject;
	}

	/**
	 * Set a value to attribute subject.
	 * 
	 * @param subject
	 *            .
	 */
	public void setSubject(List<net.ihe.gazelle.hl7v3.prpain201306UV02.PRPAIN201306UV02MFMIMT700711UV01Subject1> subject) {
		this.subject = subject;
	}

	/**
	 * Add a subject to the subject collection.
	 * 
	 * @param subject_elt
	 *            Element to add.
	 */
	public void addSubject(net.ihe.gazelle.hl7v3.prpain201306UV02.PRPAIN201306UV02MFMIMT700711UV01Subject1 subject_elt) {
		this.getSubject().add(subject_elt);
	}

	/**
	 * Remove a subject to the subject collection.
	 * 
	 * @param subject_elt
	 *            Element to remove
	 */
	public void removeSubject(
			net.ihe.gazelle.hl7v3.prpain201306UV02.PRPAIN201306UV02MFMIMT700711UV01Subject1 subject_elt) {
		this.getSubject().remove(subject_elt);
	}

	/**
	 * Return reasonOf.
	 * 
	 * @return reasonOf
	 */
	public List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Reason> getReasonOf() {
		if (reasonOf == null) {
			reasonOf = new ArrayList<>();
		}
		return reasonOf;
	}

	/**
	 * Set a value to attribute reasonOf.
	 * 
	 * @param reasonOf
	 *            .
	 */
	public void setReasonOf(List<net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Reason> reasonOf) {
		this.reasonOf = reasonOf;
	}

	/**
	 * Add a reasonOf to the reasonOf collection.
	 * 
	 * @param reasonOf_elt
	 *            Element to add.
	 */
	public void addReasonOf(net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Reason reasonOf_elt) {
		if (this.reasonOf == null) {
			this.reasonOf = new ArrayList<>();
		}
		this.reasonOf.add(reasonOf_elt);
	}

	/**
	 * Remove a reasonOf to the reasonOf collection.
	 * 
	 * @param reasonOf_elt
	 *            Element to remove
	 */
	public void removeReasonOf(net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Reason reasonOf_elt) {
		if (this.reasonOf != null) {
			this.reasonOf.remove(reasonOf_elt);
		}
	}

	/**
	 * Return queryAck.
	 * 
	 * @return queryAck
	 */
	public net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01QueryAck getQueryAck() {
		return queryAck;
	}

	/**
	 * Set a value to attribute queryAck.
	 * 
	 * @param queryAck
	 *            .
	 */
	public void setQueryAck(net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01QueryAck queryAck) {
		this.queryAck = queryAck;
	}

	/**
	 * Return queryByParameter.
	 * 
	 * @return queryByParameter
	 */
	public net.ihe.gazelle.hl7v3.prpamt201306UV02.PRPAMT201306UV02QueryByParameter getQueryByParameter() {
		return queryByParameter;
	}

	/**
	 * Set a value to attribute queryByParameter.
	 * 
	 * @param queryByParameter
	 *            .
	 */
	public void setQueryByParameter(
			net.ihe.gazelle.hl7v3.prpamt201306UV02.PRPAMT201306UV02QueryByParameter queryByParameter) {
		this.queryByParameter = queryByParameter;
	}

	/**
	 * Return classCode.
	 * 
	 * @return classCode
	 */
	public net.ihe.gazelle.hl7v3.voc.ActClassControlAct getClassCode() {
		return classCode;
	}

	/**
	 * Set a value to attribute classCode.
	 * 
	 * @param classCode
	 *            .
	 */
	public void setClassCode(net.ihe.gazelle.hl7v3.voc.ActClassControlAct classCode) {
		this.classCode = classCode;
	}

	/**
	 * Return moodCode.
	 * 
	 * @return moodCode
	 */
	public net.ihe.gazelle.hl7v3.voc.XActMoodIntentEvent getMoodCode() {
		return moodCode;
	}

	/**
	 * Set a value to attribute moodCode.
	 * 
	 * @param moodCode
	 *            .
	 */
	public void setMoodCode(net.ihe.gazelle.hl7v3.voc.XActMoodIntentEvent moodCode) {
		this.moodCode = moodCode;
	}

	/**
	 * Return nullFlavor.
	 * 
	 * @return nullFlavor
	 */
	public net.ihe.gazelle.hl7v3.voc.NullFlavor getNullFlavor() {
		return nullFlavor;
	}

	/**
	 * Set a value to attribute nullFlavor.
	 * 
	 * @param 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.prpain201306UV02");
				Marshaller m = jc.createMarshaller();
				m.marshal(this, doc);
				_xmlNodePresentation = doc.getElementsByTagNameNS("urn:hl7-org:v3",
						"PRPA_IN201306UV02.MFMI_MT700711UV01.ControlActProcess").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(
			PRPAIN201306UV02MFMIMT700711UV01ControlActProcess pRPAIN201306UV02MFMIMT700711UV01ControlActProcess,
			String _location, ConstraintValidatorModule cvm, List<net.ihe.gazelle.validation.Notification> diagnostic) {
		if (pRPAIN201306UV02MFMIMT700711UV01ControlActProcess != null) {
			cvm.validate(pRPAIN201306UV02MFMIMT700711UV01ControlActProcess, _location, diagnostic);
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.datatypes.CS realmCode : pRPAIN201306UV02MFMIMT700711UV01ControlActProcess
						.getRealmCode()) {
					net.ihe.gazelle.hl7v3.datatypes.CS.validateByModule(realmCode, _location + "/realmCode[" + i + "]",
							cvm, diagnostic);
					i++;
				}
			}

			net.ihe.gazelle.hl7v3.datatypes.II.validateByModule(
					pRPAIN201306UV02MFMIMT700711UV01ControlActProcess.getTypeId(), _location + "/typeId", cvm,
					diagnostic);
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.datatypes.II templateId : pRPAIN201306UV02MFMIMT700711UV01ControlActProcess
						.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 : pRPAIN201306UV02MFMIMT700711UV01ControlActProcess.getId()) {
					net.ihe.gazelle.hl7v3.datatypes.II.validateByModule(id, _location + "/id[" + i + "]", cvm,
							diagnostic);
					i++;
				}
			}

			net.ihe.gazelle.hl7v3.datatypes.CD.validateByModule(
					pRPAIN201306UV02MFMIMT700711UV01ControlActProcess.getCode(), _location + "/code", cvm, diagnostic);
			net.ihe.gazelle.hl7v3.datatypes.ED.validateByModule(
					pRPAIN201306UV02MFMIMT700711UV01ControlActProcess.getText(), _location + "/text", cvm, diagnostic);
			net.ihe.gazelle.hl7v3.datatypes.IVLTS.validateByModule(
					pRPAIN201306UV02MFMIMT700711UV01ControlActProcess.getEffectiveTime(), _location + "/effectiveTime",
					cvm, diagnostic);
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.datatypes.CE priorityCode : pRPAIN201306UV02MFMIMT700711UV01ControlActProcess
						.getPriorityCode()) {
					net.ihe.gazelle.hl7v3.datatypes.CE.validateByModule(priorityCode, _location + "/priorityCode[" + i
							+ "]", cvm, diagnostic);
					i++;
				}
			}

			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.datatypes.CE reasonCode : pRPAIN201306UV02MFMIMT700711UV01ControlActProcess
						.getReasonCode()) {
					net.ihe.gazelle.hl7v3.datatypes.CE.validateByModule(reasonCode, _location + "/reasonCode[" + i
							+ "]", cvm, diagnostic);
					i++;
				}
			}

			net.ihe.gazelle.hl7v3.datatypes.CE.validateByModule(
					pRPAIN201306UV02MFMIMT700711UV01ControlActProcess.getLanguageCode(), _location + "/languageCode",
					cvm, diagnostic);
			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Overseer overseer : pRPAIN201306UV02MFMIMT700711UV01ControlActProcess
						.getOverseer()) {
					net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Overseer.validateByModule(overseer,
							_location + "/overseer[" + i + "]", cvm, diagnostic);
					i++;
				}
			}

			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01AuthorOrPerformer authorOrPerformer : pRPAIN201306UV02MFMIMT700711UV01ControlActProcess
						.getAuthorOrPerformer()) {
					net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01AuthorOrPerformer.validateByModule(
							authorOrPerformer, _location + "/authorOrPerformer[" + i + "]", cvm, diagnostic);
					i++;
				}
			}

			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01DataEnterer dataEnterer : pRPAIN201306UV02MFMIMT700711UV01ControlActProcess
						.getDataEnterer()) {
					net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01DataEnterer.validateByModule(dataEnterer,
							_location + "/dataEnterer[" + i + "]", cvm, diagnostic);
					i++;
				}
			}

			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01InformationRecipient informationRecipient : pRPAIN201306UV02MFMIMT700711UV01ControlActProcess
						.getInformationRecipient()) {
					net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01InformationRecipient.validateByModule(
							informationRecipient, _location + "/informationRecipient[" + i + "]", cvm, diagnostic);
					i++;
				}
			}

			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.prpain201306UV02.PRPAIN201306UV02MFMIMT700711UV01Subject1 subject : pRPAIN201306UV02MFMIMT700711UV01ControlActProcess
						.getSubject()) {
					net.ihe.gazelle.hl7v3.prpain201306UV02.PRPAIN201306UV02MFMIMT700711UV01Subject1.validateByModule(
							subject, _location + "/subject[" + i + "]", cvm, diagnostic);
					i++;
				}
			}

			{
				int i = 0;
				for (net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Reason reasonOf : pRPAIN201306UV02MFMIMT700711UV01ControlActProcess
						.getReasonOf()) {
					net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01Reason.validateByModule(reasonOf, _location
							+ "/reasonOf[" + i + "]", cvm, diagnostic);
					i++;
				}
			}

			net.ihe.gazelle.hl7v3.mfmimt700711UV01.MFMIMT700711UV01QueryAck.validateByModule(
					pRPAIN201306UV02MFMIMT700711UV01ControlActProcess.getQueryAck(), _location + "/queryAck", cvm,
					diagnostic);
			net.ihe.gazelle.hl7v3.prpamt201306UV02.PRPAMT201306UV02QueryByParameter.validateByModule(
					pRPAIN201306UV02MFMIMT700711UV01ControlActProcess.getQueryByParameter(), _location
							+ "/queryByParameter", cvm, diagnostic);
		}
	}

}