//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.11
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2016.07.27 at 04:06:37 PM EDT
//
package org.isotc211._2005.gmd;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
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 org.isotc211._2005.gco.AbstractObjectType;
import org.isotc211._2005.gco.CharacterStringPropertyType;
import org.isotc211._2005.gco.DatePropertyType;
import org.isotc211._2005.gts.TMPeriodDurationPropertyType;
import org.jvnet.jaxb2_commons.lang.CopyStrategy2;
import org.jvnet.jaxb2_commons.lang.CopyTo2;
import org.jvnet.jaxb2_commons.lang.Equals2;
import org.jvnet.jaxb2_commons.lang.EqualsStrategy2;
import org.jvnet.jaxb2_commons.lang.HashCode2;
import org.jvnet.jaxb2_commons.lang.HashCodeStrategy2;
import org.jvnet.jaxb2_commons.lang.JAXBCopyStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBEqualsStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBHashCodeStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBMergeStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
import org.jvnet.jaxb2_commons.lang.MergeFrom2;
import org.jvnet.jaxb2_commons.lang.MergeStrategy2;
import org.jvnet.jaxb2_commons.lang.ToString2;
import org.jvnet.jaxb2_commons.lang.ToStringStrategy2;
import org.jvnet.jaxb2_commons.locator.ObjectLocator;
import org.jvnet.jaxb2_commons.locator.util.LocatorUtils;
/**
* Information about the scope and frequency of updating
*
* <p>Java class for MD_MaintenanceInformation_Type complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="MD_MaintenanceInformation_Type">
* <complexContent>
* <extension base="{http://www.isotc211.org/2005/gco}AbstractObject_Type">
* <sequence>
* <element name="maintenanceAndUpdateFrequency" type="{http://www.isotc211.org/2005/gmd}MD_MaintenanceFrequencyCode_PropertyType"/>
* <element name="dateOfNextUpdate" type="{http://www.isotc211.org/2005/gco}Date_PropertyType" minOccurs="0"/>
* <element name="userDefinedMaintenanceFrequency" type="{http://www.isotc211.org/2005/gts}TM_PeriodDuration_PropertyType" minOccurs="0"/>
* <element name="updateScope" type="{http://www.isotc211.org/2005/gmd}MD_ScopeCode_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="updateScopeDescription" type="{http://www.isotc211.org/2005/gmd}MD_ScopeDescription_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="maintenanceNote" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="contact" type="{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* </sequence>
* </extension>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MD_MaintenanceInformation_Type", propOrder = {
"maintenanceAndUpdateFrequency",
"dateOfNextUpdate",
"userDefinedMaintenanceFrequency",
"updateScope",
"updateScopeDescription",
"maintenanceNote",
"contact"
})
public class MDMaintenanceInformationType
extends AbstractObjectType
implements Serializable, Cloneable, CopyTo2, Equals2, HashCode2, MergeFrom2, ToString2
{
private final static long serialVersionUID = 1L;
@XmlElement(required = true)
@NotNull(message = "MDMaintenanceInformationType.maintenanceAndUpdateFrequency {javax.validation.constraints.NotNull.message}")
@Valid
protected MDMaintenanceFrequencyCodePropertyType maintenanceAndUpdateFrequency;
@Valid
protected DatePropertyType dateOfNextUpdate;
@Valid
protected TMPeriodDurationPropertyType userDefinedMaintenanceFrequency;
@Valid
protected List<MDScopeCodePropertyType> updateScope;
@Valid
protected List<MDScopeDescriptionPropertyType> updateScopeDescription;
@Valid
protected List<CharacterStringPropertyType> maintenanceNote;
@Valid
protected List<CIResponsiblePartyPropertyType> contact;
/**
* Gets the value of the maintenanceAndUpdateFrequency property.
*
* @return
* possible object is
* {@link MDMaintenanceFrequencyCodePropertyType }
*
*/
public MDMaintenanceFrequencyCodePropertyType getMaintenanceAndUpdateFrequency() {
return maintenanceAndUpdateFrequency;
}
/**
* Sets the value of the maintenanceAndUpdateFrequency property.
*
* @param value
* allowed object is
* {@link MDMaintenanceFrequencyCodePropertyType }
*
*/
public void setMaintenanceAndUpdateFrequency(MDMaintenanceFrequencyCodePropertyType value) {
this.maintenanceAndUpdateFrequency = value;
}
public boolean isSetMaintenanceAndUpdateFrequency() {
return (this.maintenanceAndUpdateFrequency!= null);
}
/**
* Gets the value of the dateOfNextUpdate property.
*
* @return
* possible object is
* {@link DatePropertyType }
*
*/
public DatePropertyType getDateOfNextUpdate() {
return dateOfNextUpdate;
}
/**
* Sets the value of the dateOfNextUpdate property.
*
* @param value
* allowed object is
* {@link DatePropertyType }
*
*/
public void setDateOfNextUpdate(DatePropertyType value) {
this.dateOfNextUpdate = value;
}
public boolean isSetDateOfNextUpdate() {
return (this.dateOfNextUpdate!= null);
}
/**
* Gets the value of the userDefinedMaintenanceFrequency property.
*
* @return
* possible object is
* {@link TMPeriodDurationPropertyType }
*
*/
public TMPeriodDurationPropertyType getUserDefinedMaintenanceFrequency() {
return userDefinedMaintenanceFrequency;
}
/**
* Sets the value of the userDefinedMaintenanceFrequency property.
*
* @param value
* allowed object is
* {@link TMPeriodDurationPropertyType }
*
*/
public void setUserDefinedMaintenanceFrequency(TMPeriodDurationPropertyType value) {
this.userDefinedMaintenanceFrequency = value;
}
public boolean isSetUserDefinedMaintenanceFrequency() {
return (this.userDefinedMaintenanceFrequency!= null);
}
/**
* Gets the value of the updateScope 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 updateScope property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getUpdateScope().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link MDScopeCodePropertyType }
*
*
*/
public List<MDScopeCodePropertyType> getUpdateScope() {
if (updateScope == null) {
updateScope = new ArrayList<MDScopeCodePropertyType>();
}
return this.updateScope;
}
public boolean isSetUpdateScope() {
return ((this.updateScope!= null)&&(!this.updateScope.isEmpty()));
}
public void unsetUpdateScope() {
this.updateScope = null;
}
/**
* Gets the value of the updateScopeDescription 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 updateScopeDescription property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getUpdateScopeDescription().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link MDScopeDescriptionPropertyType }
*
*
*/
public List<MDScopeDescriptionPropertyType> getUpdateScopeDescription() {
if (updateScopeDescription == null) {
updateScopeDescription = new ArrayList<MDScopeDescriptionPropertyType>();
}
return this.updateScopeDescription;
}
public boolean isSetUpdateScopeDescription() {
return ((this.updateScopeDescription!= null)&&(!this.updateScopeDescription.isEmpty()));
}
public void unsetUpdateScopeDescription() {
this.updateScopeDescription = null;
}
/**
* Gets the value of the maintenanceNote 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 maintenanceNote property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getMaintenanceNote().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CharacterStringPropertyType }
*
*
*/
public List<CharacterStringPropertyType> getMaintenanceNote() {
if (maintenanceNote == null) {
maintenanceNote = new ArrayList<CharacterStringPropertyType>();
}
return this.maintenanceNote;
}
public boolean isSetMaintenanceNote() {
return ((this.maintenanceNote!= null)&&(!this.maintenanceNote.isEmpty()));
}
public void unsetMaintenanceNote() {
this.maintenanceNote = null;
}
/**
* Gets the value of the contact 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 contact property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getContact().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CIResponsiblePartyPropertyType }
*
*
*/
public List<CIResponsiblePartyPropertyType> getContact() {
if (contact == null) {
contact = new ArrayList<CIResponsiblePartyPropertyType>();
}
return this.contact;
}
public boolean isSetContact() {
return ((this.contact!= null)&&(!this.contact.isEmpty()));
}
public void unsetContact() {
this.contact = null;
}
public String toString() {
final ToStringStrategy2 strategy = JAXBToStringStrategy.INSTANCE;
final StringBuilder buffer = new StringBuilder();
append(null, buffer, strategy);
return buffer.toString();
}
public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy2 strategy) {
strategy.appendStart(locator, this, buffer);
appendFields(locator, buffer, strategy);
strategy.appendEnd(locator, this, buffer);
return buffer;
}
public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy2 strategy) {
super.appendFields(locator, buffer, strategy);
{
MDMaintenanceFrequencyCodePropertyType theMaintenanceAndUpdateFrequency;
theMaintenanceAndUpdateFrequency = this.getMaintenanceAndUpdateFrequency();
strategy.appendField(locator, this, "maintenanceAndUpdateFrequency", buffer, theMaintenanceAndUpdateFrequency, this.isSetMaintenanceAndUpdateFrequency());
}
{
DatePropertyType theDateOfNextUpdate;
theDateOfNextUpdate = this.getDateOfNextUpdate();
strategy.appendField(locator, this, "dateOfNextUpdate", buffer, theDateOfNextUpdate, this.isSetDateOfNextUpdate());
}
{
TMPeriodDurationPropertyType theUserDefinedMaintenanceFrequency;
theUserDefinedMaintenanceFrequency = this.getUserDefinedMaintenanceFrequency();
strategy.appendField(locator, this, "userDefinedMaintenanceFrequency", buffer, theUserDefinedMaintenanceFrequency, this.isSetUserDefinedMaintenanceFrequency());
}
{
List<MDScopeCodePropertyType> theUpdateScope;
theUpdateScope = (this.isSetUpdateScope()?this.getUpdateScope():null);
strategy.appendField(locator, this, "updateScope", buffer, theUpdateScope, this.isSetUpdateScope());
}
{
List<MDScopeDescriptionPropertyType> theUpdateScopeDescription;
theUpdateScopeDescription = (this.isSetUpdateScopeDescription()?this.getUpdateScopeDescription():null);
strategy.appendField(locator, this, "updateScopeDescription", buffer, theUpdateScopeDescription, this.isSetUpdateScopeDescription());
}
{
List<CharacterStringPropertyType> theMaintenanceNote;
theMaintenanceNote = (this.isSetMaintenanceNote()?this.getMaintenanceNote():null);
strategy.appendField(locator, this, "maintenanceNote", buffer, theMaintenanceNote, this.isSetMaintenanceNote());
}
{
List<CIResponsiblePartyPropertyType> theContact;
theContact = (this.isSetContact()?this.getContact():null);
strategy.appendField(locator, this, "contact", buffer, theContact, this.isSetContact());
}
return buffer;
}
public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy2 strategy) {
if ((object == null)||(this.getClass()!= object.getClass())) {
return false;
}
if (this == object) {
return true;
}
if (!super.equals(thisLocator, thatLocator, object, strategy)) {
return false;
}
final MDMaintenanceInformationType that = ((MDMaintenanceInformationType) object);
{
MDMaintenanceFrequencyCodePropertyType lhsMaintenanceAndUpdateFrequency;
lhsMaintenanceAndUpdateFrequency = this.getMaintenanceAndUpdateFrequency();
MDMaintenanceFrequencyCodePropertyType rhsMaintenanceAndUpdateFrequency;
rhsMaintenanceAndUpdateFrequency = that.getMaintenanceAndUpdateFrequency();
if (!strategy.equals(LocatorUtils.property(thisLocator, "maintenanceAndUpdateFrequency", lhsMaintenanceAndUpdateFrequency), LocatorUtils.property(thatLocator, "maintenanceAndUpdateFrequency", rhsMaintenanceAndUpdateFrequency), lhsMaintenanceAndUpdateFrequency, rhsMaintenanceAndUpdateFrequency, this.isSetMaintenanceAndUpdateFrequency(), that.isSetMaintenanceAndUpdateFrequency())) {
return false;
}
}
{
DatePropertyType lhsDateOfNextUpdate;
lhsDateOfNextUpdate = this.getDateOfNextUpdate();
DatePropertyType rhsDateOfNextUpdate;
rhsDateOfNextUpdate = that.getDateOfNextUpdate();
if (!strategy.equals(LocatorUtils.property(thisLocator, "dateOfNextUpdate", lhsDateOfNextUpdate), LocatorUtils.property(thatLocator, "dateOfNextUpdate", rhsDateOfNextUpdate), lhsDateOfNextUpdate, rhsDateOfNextUpdate, this.isSetDateOfNextUpdate(), that.isSetDateOfNextUpdate())) {
return false;
}
}
{
TMPeriodDurationPropertyType lhsUserDefinedMaintenanceFrequency;
lhsUserDefinedMaintenanceFrequency = this.getUserDefinedMaintenanceFrequency();
TMPeriodDurationPropertyType rhsUserDefinedMaintenanceFrequency;
rhsUserDefinedMaintenanceFrequency = that.getUserDefinedMaintenanceFrequency();
if (!strategy.equals(LocatorUtils.property(thisLocator, "userDefinedMaintenanceFrequency", lhsUserDefinedMaintenanceFrequency), LocatorUtils.property(thatLocator, "userDefinedMaintenanceFrequency", rhsUserDefinedMaintenanceFrequency), lhsUserDefinedMaintenanceFrequency, rhsUserDefinedMaintenanceFrequency, this.isSetUserDefinedMaintenanceFrequency(), that.isSetUserDefinedMaintenanceFrequency())) {
return false;
}
}
{
List<MDScopeCodePropertyType> lhsUpdateScope;
lhsUpdateScope = (this.isSetUpdateScope()?this.getUpdateScope():null);
List<MDScopeCodePropertyType> rhsUpdateScope;
rhsUpdateScope = (that.isSetUpdateScope()?that.getUpdateScope():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "updateScope", lhsUpdateScope), LocatorUtils.property(thatLocator, "updateScope", rhsUpdateScope), lhsUpdateScope, rhsUpdateScope, this.isSetUpdateScope(), that.isSetUpdateScope())) {
return false;
}
}
{
List<MDScopeDescriptionPropertyType> lhsUpdateScopeDescription;
lhsUpdateScopeDescription = (this.isSetUpdateScopeDescription()?this.getUpdateScopeDescription():null);
List<MDScopeDescriptionPropertyType> rhsUpdateScopeDescription;
rhsUpdateScopeDescription = (that.isSetUpdateScopeDescription()?that.getUpdateScopeDescription():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "updateScopeDescription", lhsUpdateScopeDescription), LocatorUtils.property(thatLocator, "updateScopeDescription", rhsUpdateScopeDescription), lhsUpdateScopeDescription, rhsUpdateScopeDescription, this.isSetUpdateScopeDescription(), that.isSetUpdateScopeDescription())) {
return false;
}
}
{
List<CharacterStringPropertyType> lhsMaintenanceNote;
lhsMaintenanceNote = (this.isSetMaintenanceNote()?this.getMaintenanceNote():null);
List<CharacterStringPropertyType> rhsMaintenanceNote;
rhsMaintenanceNote = (that.isSetMaintenanceNote()?that.getMaintenanceNote():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "maintenanceNote", lhsMaintenanceNote), LocatorUtils.property(thatLocator, "maintenanceNote", rhsMaintenanceNote), lhsMaintenanceNote, rhsMaintenanceNote, this.isSetMaintenanceNote(), that.isSetMaintenanceNote())) {
return false;
}
}
{
List<CIResponsiblePartyPropertyType> lhsContact;
lhsContact = (this.isSetContact()?this.getContact():null);
List<CIResponsiblePartyPropertyType> rhsContact;
rhsContact = (that.isSetContact()?that.getContact():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "contact", lhsContact), LocatorUtils.property(thatLocator, "contact", rhsContact), lhsContact, rhsContact, this.isSetContact(), that.isSetContact())) {
return false;
}
}
return true;
}
public boolean equals(Object object) {
final EqualsStrategy2 strategy = JAXBEqualsStrategy.INSTANCE;
return equals(null, null, object, strategy);
}
public int hashCode(ObjectLocator locator, HashCodeStrategy2 strategy) {
int currentHashCode = super.hashCode(locator, strategy);
{
MDMaintenanceFrequencyCodePropertyType theMaintenanceAndUpdateFrequency;
theMaintenanceAndUpdateFrequency = this.getMaintenanceAndUpdateFrequency();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "maintenanceAndUpdateFrequency", theMaintenanceAndUpdateFrequency), currentHashCode, theMaintenanceAndUpdateFrequency, this.isSetMaintenanceAndUpdateFrequency());
}
{
DatePropertyType theDateOfNextUpdate;
theDateOfNextUpdate = this.getDateOfNextUpdate();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "dateOfNextUpdate", theDateOfNextUpdate), currentHashCode, theDateOfNextUpdate, this.isSetDateOfNextUpdate());
}
{
TMPeriodDurationPropertyType theUserDefinedMaintenanceFrequency;
theUserDefinedMaintenanceFrequency = this.getUserDefinedMaintenanceFrequency();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "userDefinedMaintenanceFrequency", theUserDefinedMaintenanceFrequency), currentHashCode, theUserDefinedMaintenanceFrequency, this.isSetUserDefinedMaintenanceFrequency());
}
{
List<MDScopeCodePropertyType> theUpdateScope;
theUpdateScope = (this.isSetUpdateScope()?this.getUpdateScope():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "updateScope", theUpdateScope), currentHashCode, theUpdateScope, this.isSetUpdateScope());
}
{
List<MDScopeDescriptionPropertyType> theUpdateScopeDescription;
theUpdateScopeDescription = (this.isSetUpdateScopeDescription()?this.getUpdateScopeDescription():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "updateScopeDescription", theUpdateScopeDescription), currentHashCode, theUpdateScopeDescription, this.isSetUpdateScopeDescription());
}
{
List<CharacterStringPropertyType> theMaintenanceNote;
theMaintenanceNote = (this.isSetMaintenanceNote()?this.getMaintenanceNote():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "maintenanceNote", theMaintenanceNote), currentHashCode, theMaintenanceNote, this.isSetMaintenanceNote());
}
{
List<CIResponsiblePartyPropertyType> theContact;
theContact = (this.isSetContact()?this.getContact():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "contact", theContact), currentHashCode, theContact, this.isSetContact());
}
return currentHashCode;
}
public int hashCode() {
final HashCodeStrategy2 strategy = JAXBHashCodeStrategy.INSTANCE;
return this.hashCode(null, strategy);
}
public Object clone() {
return copyTo(createNewInstance());
}
public Object copyTo(Object target) {
final CopyStrategy2 strategy = JAXBCopyStrategy.INSTANCE;
return copyTo(null, target, strategy);
}
public Object copyTo(ObjectLocator locator, Object target, CopyStrategy2 strategy) {
final Object draftCopy = ((target == null)?createNewInstance():target);
super.copyTo(locator, draftCopy, strategy);
if (draftCopy instanceof MDMaintenanceInformationType) {
final MDMaintenanceInformationType copy = ((MDMaintenanceInformationType) draftCopy);
{
Boolean maintenanceAndUpdateFrequencyShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetMaintenanceAndUpdateFrequency());
if (maintenanceAndUpdateFrequencyShouldBeCopiedAndSet == Boolean.TRUE) {
MDMaintenanceFrequencyCodePropertyType sourceMaintenanceAndUpdateFrequency;
sourceMaintenanceAndUpdateFrequency = this.getMaintenanceAndUpdateFrequency();
MDMaintenanceFrequencyCodePropertyType copyMaintenanceAndUpdateFrequency = ((MDMaintenanceFrequencyCodePropertyType) strategy.copy(LocatorUtils.property(locator, "maintenanceAndUpdateFrequency", sourceMaintenanceAndUpdateFrequency), sourceMaintenanceAndUpdateFrequency, this.isSetMaintenanceAndUpdateFrequency()));
copy.setMaintenanceAndUpdateFrequency(copyMaintenanceAndUpdateFrequency);
} else {
if (maintenanceAndUpdateFrequencyShouldBeCopiedAndSet == Boolean.FALSE) {
copy.maintenanceAndUpdateFrequency = null;
}
}
}
{
Boolean dateOfNextUpdateShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetDateOfNextUpdate());
if (dateOfNextUpdateShouldBeCopiedAndSet == Boolean.TRUE) {
DatePropertyType sourceDateOfNextUpdate;
sourceDateOfNextUpdate = this.getDateOfNextUpdate();
DatePropertyType copyDateOfNextUpdate = ((DatePropertyType) strategy.copy(LocatorUtils.property(locator, "dateOfNextUpdate", sourceDateOfNextUpdate), sourceDateOfNextUpdate, this.isSetDateOfNextUpdate()));
copy.setDateOfNextUpdate(copyDateOfNextUpdate);
} else {
if (dateOfNextUpdateShouldBeCopiedAndSet == Boolean.FALSE) {
copy.dateOfNextUpdate = null;
}
}
}
{
Boolean userDefinedMaintenanceFrequencyShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetUserDefinedMaintenanceFrequency());
if (userDefinedMaintenanceFrequencyShouldBeCopiedAndSet == Boolean.TRUE) {
TMPeriodDurationPropertyType sourceUserDefinedMaintenanceFrequency;
sourceUserDefinedMaintenanceFrequency = this.getUserDefinedMaintenanceFrequency();
TMPeriodDurationPropertyType copyUserDefinedMaintenanceFrequency = ((TMPeriodDurationPropertyType) strategy.copy(LocatorUtils.property(locator, "userDefinedMaintenanceFrequency", sourceUserDefinedMaintenanceFrequency), sourceUserDefinedMaintenanceFrequency, this.isSetUserDefinedMaintenanceFrequency()));
copy.setUserDefinedMaintenanceFrequency(copyUserDefinedMaintenanceFrequency);
} else {
if (userDefinedMaintenanceFrequencyShouldBeCopiedAndSet == Boolean.FALSE) {
copy.userDefinedMaintenanceFrequency = null;
}
}
}
{
Boolean updateScopeShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetUpdateScope());
if (updateScopeShouldBeCopiedAndSet == Boolean.TRUE) {
List<MDScopeCodePropertyType> sourceUpdateScope;
sourceUpdateScope = (this.isSetUpdateScope()?this.getUpdateScope():null);
@SuppressWarnings("unchecked")
List<MDScopeCodePropertyType> copyUpdateScope = ((List<MDScopeCodePropertyType> ) strategy.copy(LocatorUtils.property(locator, "updateScope", sourceUpdateScope), sourceUpdateScope, this.isSetUpdateScope()));
copy.unsetUpdateScope();
if (copyUpdateScope!= null) {
List<MDScopeCodePropertyType> uniqueUpdateScopel = copy.getUpdateScope();
uniqueUpdateScopel.addAll(copyUpdateScope);
}
} else {
if (updateScopeShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetUpdateScope();
}
}
}
{
Boolean updateScopeDescriptionShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetUpdateScopeDescription());
if (updateScopeDescriptionShouldBeCopiedAndSet == Boolean.TRUE) {
List<MDScopeDescriptionPropertyType> sourceUpdateScopeDescription;
sourceUpdateScopeDescription = (this.isSetUpdateScopeDescription()?this.getUpdateScopeDescription():null);
@SuppressWarnings("unchecked")
List<MDScopeDescriptionPropertyType> copyUpdateScopeDescription = ((List<MDScopeDescriptionPropertyType> ) strategy.copy(LocatorUtils.property(locator, "updateScopeDescription", sourceUpdateScopeDescription), sourceUpdateScopeDescription, this.isSetUpdateScopeDescription()));
copy.unsetUpdateScopeDescription();
if (copyUpdateScopeDescription!= null) {
List<MDScopeDescriptionPropertyType> uniqueUpdateScopeDescriptionl = copy.getUpdateScopeDescription();
uniqueUpdateScopeDescriptionl.addAll(copyUpdateScopeDescription);
}
} else {
if (updateScopeDescriptionShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetUpdateScopeDescription();
}
}
}
{
Boolean maintenanceNoteShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetMaintenanceNote());
if (maintenanceNoteShouldBeCopiedAndSet == Boolean.TRUE) {
List<CharacterStringPropertyType> sourceMaintenanceNote;
sourceMaintenanceNote = (this.isSetMaintenanceNote()?this.getMaintenanceNote():null);
@SuppressWarnings("unchecked")
List<CharacterStringPropertyType> copyMaintenanceNote = ((List<CharacterStringPropertyType> ) strategy.copy(LocatorUtils.property(locator, "maintenanceNote", sourceMaintenanceNote), sourceMaintenanceNote, this.isSetMaintenanceNote()));
copy.unsetMaintenanceNote();
if (copyMaintenanceNote!= null) {
List<CharacterStringPropertyType> uniqueMaintenanceNotel = copy.getMaintenanceNote();
uniqueMaintenanceNotel.addAll(copyMaintenanceNote);
}
} else {
if (maintenanceNoteShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetMaintenanceNote();
}
}
}
{
Boolean contactShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetContact());
if (contactShouldBeCopiedAndSet == Boolean.TRUE) {
List<CIResponsiblePartyPropertyType> sourceContact;
sourceContact = (this.isSetContact()?this.getContact():null);
@SuppressWarnings("unchecked")
List<CIResponsiblePartyPropertyType> copyContact = ((List<CIResponsiblePartyPropertyType> ) strategy.copy(LocatorUtils.property(locator, "contact", sourceContact), sourceContact, this.isSetContact()));
copy.unsetContact();
if (copyContact!= null) {
List<CIResponsiblePartyPropertyType> uniqueContactl = copy.getContact();
uniqueContactl.addAll(copyContact);
}
} else {
if (contactShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetContact();
}
}
}
}
return draftCopy;
}
public Object createNewInstance() {
return new MDMaintenanceInformationType();
}
public void mergeFrom(Object left, Object right) {
final MergeStrategy2 strategy = JAXBMergeStrategy.INSTANCE;
mergeFrom(null, null, left, right, strategy);
}
public void mergeFrom(ObjectLocator leftLocator, ObjectLocator rightLocator, Object left, Object right, MergeStrategy2 strategy) {
super.mergeFrom(leftLocator, rightLocator, left, right, strategy);
if (right instanceof MDMaintenanceInformationType) {
final MDMaintenanceInformationType target = this;
final MDMaintenanceInformationType leftObject = ((MDMaintenanceInformationType) left);
final MDMaintenanceInformationType rightObject = ((MDMaintenanceInformationType) right);
{
Boolean maintenanceAndUpdateFrequencyShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetMaintenanceAndUpdateFrequency(), rightObject.isSetMaintenanceAndUpdateFrequency());
if (maintenanceAndUpdateFrequencyShouldBeMergedAndSet == Boolean.TRUE) {
MDMaintenanceFrequencyCodePropertyType lhsMaintenanceAndUpdateFrequency;
lhsMaintenanceAndUpdateFrequency = leftObject.getMaintenanceAndUpdateFrequency();
MDMaintenanceFrequencyCodePropertyType rhsMaintenanceAndUpdateFrequency;
rhsMaintenanceAndUpdateFrequency = rightObject.getMaintenanceAndUpdateFrequency();
MDMaintenanceFrequencyCodePropertyType mergedMaintenanceAndUpdateFrequency = ((MDMaintenanceFrequencyCodePropertyType) strategy.merge(LocatorUtils.property(leftLocator, "maintenanceAndUpdateFrequency", lhsMaintenanceAndUpdateFrequency), LocatorUtils.property(rightLocator, "maintenanceAndUpdateFrequency", rhsMaintenanceAndUpdateFrequency), lhsMaintenanceAndUpdateFrequency, rhsMaintenanceAndUpdateFrequency, leftObject.isSetMaintenanceAndUpdateFrequency(), rightObject.isSetMaintenanceAndUpdateFrequency()));
target.setMaintenanceAndUpdateFrequency(mergedMaintenanceAndUpdateFrequency);
} else {
if (maintenanceAndUpdateFrequencyShouldBeMergedAndSet == Boolean.FALSE) {
target.maintenanceAndUpdateFrequency = null;
}
}
}
{
Boolean dateOfNextUpdateShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetDateOfNextUpdate(), rightObject.isSetDateOfNextUpdate());
if (dateOfNextUpdateShouldBeMergedAndSet == Boolean.TRUE) {
DatePropertyType lhsDateOfNextUpdate;
lhsDateOfNextUpdate = leftObject.getDateOfNextUpdate();
DatePropertyType rhsDateOfNextUpdate;
rhsDateOfNextUpdate = rightObject.getDateOfNextUpdate();
DatePropertyType mergedDateOfNextUpdate = ((DatePropertyType) strategy.merge(LocatorUtils.property(leftLocator, "dateOfNextUpdate", lhsDateOfNextUpdate), LocatorUtils.property(rightLocator, "dateOfNextUpdate", rhsDateOfNextUpdate), lhsDateOfNextUpdate, rhsDateOfNextUpdate, leftObject.isSetDateOfNextUpdate(), rightObject.isSetDateOfNextUpdate()));
target.setDateOfNextUpdate(mergedDateOfNextUpdate);
} else {
if (dateOfNextUpdateShouldBeMergedAndSet == Boolean.FALSE) {
target.dateOfNextUpdate = null;
}
}
}
{
Boolean userDefinedMaintenanceFrequencyShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetUserDefinedMaintenanceFrequency(), rightObject.isSetUserDefinedMaintenanceFrequency());
if (userDefinedMaintenanceFrequencyShouldBeMergedAndSet == Boolean.TRUE) {
TMPeriodDurationPropertyType lhsUserDefinedMaintenanceFrequency;
lhsUserDefinedMaintenanceFrequency = leftObject.getUserDefinedMaintenanceFrequency();
TMPeriodDurationPropertyType rhsUserDefinedMaintenanceFrequency;
rhsUserDefinedMaintenanceFrequency = rightObject.getUserDefinedMaintenanceFrequency();
TMPeriodDurationPropertyType mergedUserDefinedMaintenanceFrequency = ((TMPeriodDurationPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "userDefinedMaintenanceFrequency", lhsUserDefinedMaintenanceFrequency), LocatorUtils.property(rightLocator, "userDefinedMaintenanceFrequency", rhsUserDefinedMaintenanceFrequency), lhsUserDefinedMaintenanceFrequency, rhsUserDefinedMaintenanceFrequency, leftObject.isSetUserDefinedMaintenanceFrequency(), rightObject.isSetUserDefinedMaintenanceFrequency()));
target.setUserDefinedMaintenanceFrequency(mergedUserDefinedMaintenanceFrequency);
} else {
if (userDefinedMaintenanceFrequencyShouldBeMergedAndSet == Boolean.FALSE) {
target.userDefinedMaintenanceFrequency = null;
}
}
}
{
Boolean updateScopeShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetUpdateScope(), rightObject.isSetUpdateScope());
if (updateScopeShouldBeMergedAndSet == Boolean.TRUE) {
List<MDScopeCodePropertyType> lhsUpdateScope;
lhsUpdateScope = (leftObject.isSetUpdateScope()?leftObject.getUpdateScope():null);
List<MDScopeCodePropertyType> rhsUpdateScope;
rhsUpdateScope = (rightObject.isSetUpdateScope()?rightObject.getUpdateScope():null);
List<MDScopeCodePropertyType> mergedUpdateScope = ((List<MDScopeCodePropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "updateScope", lhsUpdateScope), LocatorUtils.property(rightLocator, "updateScope", rhsUpdateScope), lhsUpdateScope, rhsUpdateScope, leftObject.isSetUpdateScope(), rightObject.isSetUpdateScope()));
target.unsetUpdateScope();
if (mergedUpdateScope!= null) {
List<MDScopeCodePropertyType> uniqueUpdateScopel = target.getUpdateScope();
uniqueUpdateScopel.addAll(mergedUpdateScope);
}
} else {
if (updateScopeShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetUpdateScope();
}
}
}
{
Boolean updateScopeDescriptionShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetUpdateScopeDescription(), rightObject.isSetUpdateScopeDescription());
if (updateScopeDescriptionShouldBeMergedAndSet == Boolean.TRUE) {
List<MDScopeDescriptionPropertyType> lhsUpdateScopeDescription;
lhsUpdateScopeDescription = (leftObject.isSetUpdateScopeDescription()?leftObject.getUpdateScopeDescription():null);
List<MDScopeDescriptionPropertyType> rhsUpdateScopeDescription;
rhsUpdateScopeDescription = (rightObject.isSetUpdateScopeDescription()?rightObject.getUpdateScopeDescription():null);
List<MDScopeDescriptionPropertyType> mergedUpdateScopeDescription = ((List<MDScopeDescriptionPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "updateScopeDescription", lhsUpdateScopeDescription), LocatorUtils.property(rightLocator, "updateScopeDescription", rhsUpdateScopeDescription), lhsUpdateScopeDescription, rhsUpdateScopeDescription, leftObject.isSetUpdateScopeDescription(), rightObject.isSetUpdateScopeDescription()));
target.unsetUpdateScopeDescription();
if (mergedUpdateScopeDescription!= null) {
List<MDScopeDescriptionPropertyType> uniqueUpdateScopeDescriptionl = target.getUpdateScopeDescription();
uniqueUpdateScopeDescriptionl.addAll(mergedUpdateScopeDescription);
}
} else {
if (updateScopeDescriptionShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetUpdateScopeDescription();
}
}
}
{
Boolean maintenanceNoteShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetMaintenanceNote(), rightObject.isSetMaintenanceNote());
if (maintenanceNoteShouldBeMergedAndSet == Boolean.TRUE) {
List<CharacterStringPropertyType> lhsMaintenanceNote;
lhsMaintenanceNote = (leftObject.isSetMaintenanceNote()?leftObject.getMaintenanceNote():null);
List<CharacterStringPropertyType> rhsMaintenanceNote;
rhsMaintenanceNote = (rightObject.isSetMaintenanceNote()?rightObject.getMaintenanceNote():null);
List<CharacterStringPropertyType> mergedMaintenanceNote = ((List<CharacterStringPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "maintenanceNote", lhsMaintenanceNote), LocatorUtils.property(rightLocator, "maintenanceNote", rhsMaintenanceNote), lhsMaintenanceNote, rhsMaintenanceNote, leftObject.isSetMaintenanceNote(), rightObject.isSetMaintenanceNote()));
target.unsetMaintenanceNote();
if (mergedMaintenanceNote!= null) {
List<CharacterStringPropertyType> uniqueMaintenanceNotel = target.getMaintenanceNote();
uniqueMaintenanceNotel.addAll(mergedMaintenanceNote);
}
} else {
if (maintenanceNoteShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetMaintenanceNote();
}
}
}
{
Boolean contactShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetContact(), rightObject.isSetContact());
if (contactShouldBeMergedAndSet == Boolean.TRUE) {
List<CIResponsiblePartyPropertyType> lhsContact;
lhsContact = (leftObject.isSetContact()?leftObject.getContact():null);
List<CIResponsiblePartyPropertyType> rhsContact;
rhsContact = (rightObject.isSetContact()?rightObject.getContact():null);
List<CIResponsiblePartyPropertyType> mergedContact = ((List<CIResponsiblePartyPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "contact", lhsContact), LocatorUtils.property(rightLocator, "contact", rhsContact), lhsContact, rhsContact, leftObject.isSetContact(), rightObject.isSetContact()));
target.unsetContact();
if (mergedContact!= null) {
List<CIResponsiblePartyPropertyType> uniqueContactl = target.getContact();
uniqueContactl.addAll(mergedContact);
}
} else {
if (contactShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetContact();
}
}
}
}
}
public void setUpdateScope(List<MDScopeCodePropertyType> value) {
this.updateScope = null;
if (value!= null) {
List<MDScopeCodePropertyType> draftl = this.getUpdateScope();
draftl.addAll(value);
}
}
public void setUpdateScopeDescription(List<MDScopeDescriptionPropertyType> value) {
this.updateScopeDescription = null;
if (value!= null) {
List<MDScopeDescriptionPropertyType> draftl = this.getUpdateScopeDescription();
draftl.addAll(value);
}
}
public void setMaintenanceNote(List<CharacterStringPropertyType> value) {
this.maintenanceNote = null;
if (value!= null) {
List<CharacterStringPropertyType> draftl = this.getMaintenanceNote();
draftl.addAll(value);
}
}
public void setContact(List<CIResponsiblePartyPropertyType> value) {
this.contact = null;
if (value!= null) {
List<CIResponsiblePartyPropertyType> draftl = this.getContact();
draftl.addAll(value);
}
}
}