//
// 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.validation.constraints.Size;
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.IntegerPropertyType;
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;
/**
* New metadata element, not found in ISO 19115, which is required to describe geographic data
*
* <p>Java class for MD_ExtendedElementInformation_Type complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="MD_ExtendedElementInformation_Type">
* <complexContent>
* <extension base="{http://www.isotc211.org/2005/gco}AbstractObject_Type">
* <sequence>
* <element name="name" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType"/>
* <element name="shortName" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" minOccurs="0"/>
* <element name="domainCode" type="{http://www.isotc211.org/2005/gco}Integer_PropertyType" minOccurs="0"/>
* <element name="definition" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType"/>
* <element name="obligation" type="{http://www.isotc211.org/2005/gmd}MD_ObligationCode_PropertyType" minOccurs="0"/>
* <element name="condition" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" minOccurs="0"/>
* <element name="dataType" type="{http://www.isotc211.org/2005/gmd}MD_DatatypeCode_PropertyType"/>
* <element name="maximumOccurrence" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" minOccurs="0"/>
* <element name="domainValue" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" minOccurs="0"/>
* <element name="parentEntity" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" maxOccurs="unbounded"/>
* <element name="rule" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType"/>
* <element name="rationale" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="source" type="{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty_PropertyType" maxOccurs="unbounded"/>
* </sequence>
* </extension>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MD_ExtendedElementInformation_Type", propOrder = {
"name",
"shortName",
"domainCode",
"definition",
"obligation",
"condition",
"dataType",
"maximumOccurrence",
"domainValue",
"parentEntity",
"rule",
"rationale",
"source"
})
public class MDExtendedElementInformationType
extends AbstractObjectType
implements Serializable, Cloneable, CopyTo2, Equals2, HashCode2, MergeFrom2, ToString2
{
private final static long serialVersionUID = 1L;
@XmlElement(required = true)
@NotNull(message = "MDExtendedElementInformationType.name {javax.validation.constraints.NotNull.message}")
@Valid
protected CharacterStringPropertyType name;
@Valid
protected CharacterStringPropertyType shortName;
@Valid
protected IntegerPropertyType domainCode;
@XmlElement(required = true)
@NotNull(message = "MDExtendedElementInformationType.definition {javax.validation.constraints.NotNull.message}")
@Valid
protected CharacterStringPropertyType definition;
@Valid
protected MDObligationCodePropertyType obligation;
@Valid
protected CharacterStringPropertyType condition;
@XmlElement(required = true)
@NotNull(message = "MDExtendedElementInformationType.dataType {javax.validation.constraints.NotNull.message}")
@Valid
protected MDDatatypeCodePropertyType dataType;
@Valid
protected CharacterStringPropertyType maximumOccurrence;
@Valid
protected CharacterStringPropertyType domainValue;
@XmlElement(required = true)
@NotNull(message = "MDExtendedElementInformationType.parentEntity {javax.validation.constraints.NotNull.message}")
@Size(min = 1)
@Valid
protected List<CharacterStringPropertyType> parentEntity;
@XmlElement(required = true)
@NotNull(message = "MDExtendedElementInformationType.rule {javax.validation.constraints.NotNull.message}")
@Valid
protected CharacterStringPropertyType rule;
@Valid
protected List<CharacterStringPropertyType> rationale;
@XmlElement(required = true)
@NotNull(message = "MDExtendedElementInformationType.source {javax.validation.constraints.NotNull.message}")
@Size(min = 1)
@Valid
protected List<CIResponsiblePartyPropertyType> source;
/**
* Gets the value of the name property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getName() {
return name;
}
/**
* Sets the value of the name property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setName(CharacterStringPropertyType value) {
this.name = value;
}
public boolean isSetName() {
return (this.name!= null);
}
/**
* Gets the value of the shortName property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getShortName() {
return shortName;
}
/**
* Sets the value of the shortName property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setShortName(CharacterStringPropertyType value) {
this.shortName = value;
}
public boolean isSetShortName() {
return (this.shortName!= null);
}
/**
* Gets the value of the domainCode property.
*
* @return
* possible object is
* {@link IntegerPropertyType }
*
*/
public IntegerPropertyType getDomainCode() {
return domainCode;
}
/**
* Sets the value of the domainCode property.
*
* @param value
* allowed object is
* {@link IntegerPropertyType }
*
*/
public void setDomainCode(IntegerPropertyType value) {
this.domainCode = value;
}
public boolean isSetDomainCode() {
return (this.domainCode!= null);
}
/**
* Gets the value of the definition property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getDefinition() {
return definition;
}
/**
* Sets the value of the definition property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setDefinition(CharacterStringPropertyType value) {
this.definition = value;
}
public boolean isSetDefinition() {
return (this.definition!= null);
}
/**
* Gets the value of the obligation property.
*
* @return
* possible object is
* {@link MDObligationCodePropertyType }
*
*/
public MDObligationCodePropertyType getObligation() {
return obligation;
}
/**
* Sets the value of the obligation property.
*
* @param value
* allowed object is
* {@link MDObligationCodePropertyType }
*
*/
public void setObligation(MDObligationCodePropertyType value) {
this.obligation = value;
}
public boolean isSetObligation() {
return (this.obligation!= null);
}
/**
* Gets the value of the condition property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getCondition() {
return condition;
}
/**
* Sets the value of the condition property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setCondition(CharacterStringPropertyType value) {
this.condition = value;
}
public boolean isSetCondition() {
return (this.condition!= null);
}
/**
* Gets the value of the dataType property.
*
* @return
* possible object is
* {@link MDDatatypeCodePropertyType }
*
*/
public MDDatatypeCodePropertyType getDataType() {
return dataType;
}
/**
* Sets the value of the dataType property.
*
* @param value
* allowed object is
* {@link MDDatatypeCodePropertyType }
*
*/
public void setDataType(MDDatatypeCodePropertyType value) {
this.dataType = value;
}
public boolean isSetDataType() {
return (this.dataType!= null);
}
/**
* Gets the value of the maximumOccurrence property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getMaximumOccurrence() {
return maximumOccurrence;
}
/**
* Sets the value of the maximumOccurrence property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setMaximumOccurrence(CharacterStringPropertyType value) {
this.maximumOccurrence = value;
}
public boolean isSetMaximumOccurrence() {
return (this.maximumOccurrence!= null);
}
/**
* Gets the value of the domainValue property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getDomainValue() {
return domainValue;
}
/**
* Sets the value of the domainValue property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setDomainValue(CharacterStringPropertyType value) {
this.domainValue = value;
}
public boolean isSetDomainValue() {
return (this.domainValue!= null);
}
/**
* Gets the value of the parentEntity 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 parentEntity property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getParentEntity().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CharacterStringPropertyType }
*
*
*/
public List<CharacterStringPropertyType> getParentEntity() {
if (parentEntity == null) {
parentEntity = new ArrayList<CharacterStringPropertyType>();
}
return this.parentEntity;
}
public boolean isSetParentEntity() {
return ((this.parentEntity!= null)&&(!this.parentEntity.isEmpty()));
}
public void unsetParentEntity() {
this.parentEntity = null;
}
/**
* Gets the value of the rule property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getRule() {
return rule;
}
/**
* Sets the value of the rule property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setRule(CharacterStringPropertyType value) {
this.rule = value;
}
public boolean isSetRule() {
return (this.rule!= null);
}
/**
* Gets the value of the rationale 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 rationale property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getRationale().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CharacterStringPropertyType }
*
*
*/
public List<CharacterStringPropertyType> getRationale() {
if (rationale == null) {
rationale = new ArrayList<CharacterStringPropertyType>();
}
return this.rationale;
}
public boolean isSetRationale() {
return ((this.rationale!= null)&&(!this.rationale.isEmpty()));
}
public void unsetRationale() {
this.rationale = null;
}
/**
* Gets the value of the source 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 source property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getSource().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CIResponsiblePartyPropertyType }
*
*
*/
public List<CIResponsiblePartyPropertyType> getSource() {
if (source == null) {
source = new ArrayList<CIResponsiblePartyPropertyType>();
}
return this.source;
}
public boolean isSetSource() {
return ((this.source!= null)&&(!this.source.isEmpty()));
}
public void unsetSource() {
this.source = 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);
{
CharacterStringPropertyType theName;
theName = this.getName();
strategy.appendField(locator, this, "name", buffer, theName, this.isSetName());
}
{
CharacterStringPropertyType theShortName;
theShortName = this.getShortName();
strategy.appendField(locator, this, "shortName", buffer, theShortName, this.isSetShortName());
}
{
IntegerPropertyType theDomainCode;
theDomainCode = this.getDomainCode();
strategy.appendField(locator, this, "domainCode", buffer, theDomainCode, this.isSetDomainCode());
}
{
CharacterStringPropertyType theDefinition;
theDefinition = this.getDefinition();
strategy.appendField(locator, this, "definition", buffer, theDefinition, this.isSetDefinition());
}
{
MDObligationCodePropertyType theObligation;
theObligation = this.getObligation();
strategy.appendField(locator, this, "obligation", buffer, theObligation, this.isSetObligation());
}
{
CharacterStringPropertyType theCondition;
theCondition = this.getCondition();
strategy.appendField(locator, this, "condition", buffer, theCondition, this.isSetCondition());
}
{
MDDatatypeCodePropertyType theDataType;
theDataType = this.getDataType();
strategy.appendField(locator, this, "dataType", buffer, theDataType, this.isSetDataType());
}
{
CharacterStringPropertyType theMaximumOccurrence;
theMaximumOccurrence = this.getMaximumOccurrence();
strategy.appendField(locator, this, "maximumOccurrence", buffer, theMaximumOccurrence, this.isSetMaximumOccurrence());
}
{
CharacterStringPropertyType theDomainValue;
theDomainValue = this.getDomainValue();
strategy.appendField(locator, this, "domainValue", buffer, theDomainValue, this.isSetDomainValue());
}
{
List<CharacterStringPropertyType> theParentEntity;
theParentEntity = (this.isSetParentEntity()?this.getParentEntity():null);
strategy.appendField(locator, this, "parentEntity", buffer, theParentEntity, this.isSetParentEntity());
}
{
CharacterStringPropertyType theRule;
theRule = this.getRule();
strategy.appendField(locator, this, "rule", buffer, theRule, this.isSetRule());
}
{
List<CharacterStringPropertyType> theRationale;
theRationale = (this.isSetRationale()?this.getRationale():null);
strategy.appendField(locator, this, "rationale", buffer, theRationale, this.isSetRationale());
}
{
List<CIResponsiblePartyPropertyType> theSource;
theSource = (this.isSetSource()?this.getSource():null);
strategy.appendField(locator, this, "source", buffer, theSource, this.isSetSource());
}
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 MDExtendedElementInformationType that = ((MDExtendedElementInformationType) object);
{
CharacterStringPropertyType lhsName;
lhsName = this.getName();
CharacterStringPropertyType rhsName;
rhsName = that.getName();
if (!strategy.equals(LocatorUtils.property(thisLocator, "name", lhsName), LocatorUtils.property(thatLocator, "name", rhsName), lhsName, rhsName, this.isSetName(), that.isSetName())) {
return false;
}
}
{
CharacterStringPropertyType lhsShortName;
lhsShortName = this.getShortName();
CharacterStringPropertyType rhsShortName;
rhsShortName = that.getShortName();
if (!strategy.equals(LocatorUtils.property(thisLocator, "shortName", lhsShortName), LocatorUtils.property(thatLocator, "shortName", rhsShortName), lhsShortName, rhsShortName, this.isSetShortName(), that.isSetShortName())) {
return false;
}
}
{
IntegerPropertyType lhsDomainCode;
lhsDomainCode = this.getDomainCode();
IntegerPropertyType rhsDomainCode;
rhsDomainCode = that.getDomainCode();
if (!strategy.equals(LocatorUtils.property(thisLocator, "domainCode", lhsDomainCode), LocatorUtils.property(thatLocator, "domainCode", rhsDomainCode), lhsDomainCode, rhsDomainCode, this.isSetDomainCode(), that.isSetDomainCode())) {
return false;
}
}
{
CharacterStringPropertyType lhsDefinition;
lhsDefinition = this.getDefinition();
CharacterStringPropertyType rhsDefinition;
rhsDefinition = that.getDefinition();
if (!strategy.equals(LocatorUtils.property(thisLocator, "definition", lhsDefinition), LocatorUtils.property(thatLocator, "definition", rhsDefinition), lhsDefinition, rhsDefinition, this.isSetDefinition(), that.isSetDefinition())) {
return false;
}
}
{
MDObligationCodePropertyType lhsObligation;
lhsObligation = this.getObligation();
MDObligationCodePropertyType rhsObligation;
rhsObligation = that.getObligation();
if (!strategy.equals(LocatorUtils.property(thisLocator, "obligation", lhsObligation), LocatorUtils.property(thatLocator, "obligation", rhsObligation), lhsObligation, rhsObligation, this.isSetObligation(), that.isSetObligation())) {
return false;
}
}
{
CharacterStringPropertyType lhsCondition;
lhsCondition = this.getCondition();
CharacterStringPropertyType rhsCondition;
rhsCondition = that.getCondition();
if (!strategy.equals(LocatorUtils.property(thisLocator, "condition", lhsCondition), LocatorUtils.property(thatLocator, "condition", rhsCondition), lhsCondition, rhsCondition, this.isSetCondition(), that.isSetCondition())) {
return false;
}
}
{
MDDatatypeCodePropertyType lhsDataType;
lhsDataType = this.getDataType();
MDDatatypeCodePropertyType rhsDataType;
rhsDataType = that.getDataType();
if (!strategy.equals(LocatorUtils.property(thisLocator, "dataType", lhsDataType), LocatorUtils.property(thatLocator, "dataType", rhsDataType), lhsDataType, rhsDataType, this.isSetDataType(), that.isSetDataType())) {
return false;
}
}
{
CharacterStringPropertyType lhsMaximumOccurrence;
lhsMaximumOccurrence = this.getMaximumOccurrence();
CharacterStringPropertyType rhsMaximumOccurrence;
rhsMaximumOccurrence = that.getMaximumOccurrence();
if (!strategy.equals(LocatorUtils.property(thisLocator, "maximumOccurrence", lhsMaximumOccurrence), LocatorUtils.property(thatLocator, "maximumOccurrence", rhsMaximumOccurrence), lhsMaximumOccurrence, rhsMaximumOccurrence, this.isSetMaximumOccurrence(), that.isSetMaximumOccurrence())) {
return false;
}
}
{
CharacterStringPropertyType lhsDomainValue;
lhsDomainValue = this.getDomainValue();
CharacterStringPropertyType rhsDomainValue;
rhsDomainValue = that.getDomainValue();
if (!strategy.equals(LocatorUtils.property(thisLocator, "domainValue", lhsDomainValue), LocatorUtils.property(thatLocator, "domainValue", rhsDomainValue), lhsDomainValue, rhsDomainValue, this.isSetDomainValue(), that.isSetDomainValue())) {
return false;
}
}
{
List<CharacterStringPropertyType> lhsParentEntity;
lhsParentEntity = (this.isSetParentEntity()?this.getParentEntity():null);
List<CharacterStringPropertyType> rhsParentEntity;
rhsParentEntity = (that.isSetParentEntity()?that.getParentEntity():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "parentEntity", lhsParentEntity), LocatorUtils.property(thatLocator, "parentEntity", rhsParentEntity), lhsParentEntity, rhsParentEntity, this.isSetParentEntity(), that.isSetParentEntity())) {
return false;
}
}
{
CharacterStringPropertyType lhsRule;
lhsRule = this.getRule();
CharacterStringPropertyType rhsRule;
rhsRule = that.getRule();
if (!strategy.equals(LocatorUtils.property(thisLocator, "rule", lhsRule), LocatorUtils.property(thatLocator, "rule", rhsRule), lhsRule, rhsRule, this.isSetRule(), that.isSetRule())) {
return false;
}
}
{
List<CharacterStringPropertyType> lhsRationale;
lhsRationale = (this.isSetRationale()?this.getRationale():null);
List<CharacterStringPropertyType> rhsRationale;
rhsRationale = (that.isSetRationale()?that.getRationale():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "rationale", lhsRationale), LocatorUtils.property(thatLocator, "rationale", rhsRationale), lhsRationale, rhsRationale, this.isSetRationale(), that.isSetRationale())) {
return false;
}
}
{
List<CIResponsiblePartyPropertyType> lhsSource;
lhsSource = (this.isSetSource()?this.getSource():null);
List<CIResponsiblePartyPropertyType> rhsSource;
rhsSource = (that.isSetSource()?that.getSource():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "source", lhsSource), LocatorUtils.property(thatLocator, "source", rhsSource), lhsSource, rhsSource, this.isSetSource(), that.isSetSource())) {
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);
{
CharacterStringPropertyType theName;
theName = this.getName();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "name", theName), currentHashCode, theName, this.isSetName());
}
{
CharacterStringPropertyType theShortName;
theShortName = this.getShortName();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "shortName", theShortName), currentHashCode, theShortName, this.isSetShortName());
}
{
IntegerPropertyType theDomainCode;
theDomainCode = this.getDomainCode();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "domainCode", theDomainCode), currentHashCode, theDomainCode, this.isSetDomainCode());
}
{
CharacterStringPropertyType theDefinition;
theDefinition = this.getDefinition();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "definition", theDefinition), currentHashCode, theDefinition, this.isSetDefinition());
}
{
MDObligationCodePropertyType theObligation;
theObligation = this.getObligation();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "obligation", theObligation), currentHashCode, theObligation, this.isSetObligation());
}
{
CharacterStringPropertyType theCondition;
theCondition = this.getCondition();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "condition", theCondition), currentHashCode, theCondition, this.isSetCondition());
}
{
MDDatatypeCodePropertyType theDataType;
theDataType = this.getDataType();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "dataType", theDataType), currentHashCode, theDataType, this.isSetDataType());
}
{
CharacterStringPropertyType theMaximumOccurrence;
theMaximumOccurrence = this.getMaximumOccurrence();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "maximumOccurrence", theMaximumOccurrence), currentHashCode, theMaximumOccurrence, this.isSetMaximumOccurrence());
}
{
CharacterStringPropertyType theDomainValue;
theDomainValue = this.getDomainValue();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "domainValue", theDomainValue), currentHashCode, theDomainValue, this.isSetDomainValue());
}
{
List<CharacterStringPropertyType> theParentEntity;
theParentEntity = (this.isSetParentEntity()?this.getParentEntity():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "parentEntity", theParentEntity), currentHashCode, theParentEntity, this.isSetParentEntity());
}
{
CharacterStringPropertyType theRule;
theRule = this.getRule();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "rule", theRule), currentHashCode, theRule, this.isSetRule());
}
{
List<CharacterStringPropertyType> theRationale;
theRationale = (this.isSetRationale()?this.getRationale():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "rationale", theRationale), currentHashCode, theRationale, this.isSetRationale());
}
{
List<CIResponsiblePartyPropertyType> theSource;
theSource = (this.isSetSource()?this.getSource():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "source", theSource), currentHashCode, theSource, this.isSetSource());
}
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 MDExtendedElementInformationType) {
final MDExtendedElementInformationType copy = ((MDExtendedElementInformationType) draftCopy);
{
Boolean nameShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetName());
if (nameShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceName;
sourceName = this.getName();
CharacterStringPropertyType copyName = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "name", sourceName), sourceName, this.isSetName()));
copy.setName(copyName);
} else {
if (nameShouldBeCopiedAndSet == Boolean.FALSE) {
copy.name = null;
}
}
}
{
Boolean shortNameShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetShortName());
if (shortNameShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceShortName;
sourceShortName = this.getShortName();
CharacterStringPropertyType copyShortName = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "shortName", sourceShortName), sourceShortName, this.isSetShortName()));
copy.setShortName(copyShortName);
} else {
if (shortNameShouldBeCopiedAndSet == Boolean.FALSE) {
copy.shortName = null;
}
}
}
{
Boolean domainCodeShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetDomainCode());
if (domainCodeShouldBeCopiedAndSet == Boolean.TRUE) {
IntegerPropertyType sourceDomainCode;
sourceDomainCode = this.getDomainCode();
IntegerPropertyType copyDomainCode = ((IntegerPropertyType) strategy.copy(LocatorUtils.property(locator, "domainCode", sourceDomainCode), sourceDomainCode, this.isSetDomainCode()));
copy.setDomainCode(copyDomainCode);
} else {
if (domainCodeShouldBeCopiedAndSet == Boolean.FALSE) {
copy.domainCode = null;
}
}
}
{
Boolean definitionShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetDefinition());
if (definitionShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceDefinition;
sourceDefinition = this.getDefinition();
CharacterStringPropertyType copyDefinition = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "definition", sourceDefinition), sourceDefinition, this.isSetDefinition()));
copy.setDefinition(copyDefinition);
} else {
if (definitionShouldBeCopiedAndSet == Boolean.FALSE) {
copy.definition = null;
}
}
}
{
Boolean obligationShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetObligation());
if (obligationShouldBeCopiedAndSet == Boolean.TRUE) {
MDObligationCodePropertyType sourceObligation;
sourceObligation = this.getObligation();
MDObligationCodePropertyType copyObligation = ((MDObligationCodePropertyType) strategy.copy(LocatorUtils.property(locator, "obligation", sourceObligation), sourceObligation, this.isSetObligation()));
copy.setObligation(copyObligation);
} else {
if (obligationShouldBeCopiedAndSet == Boolean.FALSE) {
copy.obligation = null;
}
}
}
{
Boolean conditionShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetCondition());
if (conditionShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceCondition;
sourceCondition = this.getCondition();
CharacterStringPropertyType copyCondition = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "condition", sourceCondition), sourceCondition, this.isSetCondition()));
copy.setCondition(copyCondition);
} else {
if (conditionShouldBeCopiedAndSet == Boolean.FALSE) {
copy.condition = null;
}
}
}
{
Boolean dataTypeShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetDataType());
if (dataTypeShouldBeCopiedAndSet == Boolean.TRUE) {
MDDatatypeCodePropertyType sourceDataType;
sourceDataType = this.getDataType();
MDDatatypeCodePropertyType copyDataType = ((MDDatatypeCodePropertyType) strategy.copy(LocatorUtils.property(locator, "dataType", sourceDataType), sourceDataType, this.isSetDataType()));
copy.setDataType(copyDataType);
} else {
if (dataTypeShouldBeCopiedAndSet == Boolean.FALSE) {
copy.dataType = null;
}
}
}
{
Boolean maximumOccurrenceShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetMaximumOccurrence());
if (maximumOccurrenceShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceMaximumOccurrence;
sourceMaximumOccurrence = this.getMaximumOccurrence();
CharacterStringPropertyType copyMaximumOccurrence = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "maximumOccurrence", sourceMaximumOccurrence), sourceMaximumOccurrence, this.isSetMaximumOccurrence()));
copy.setMaximumOccurrence(copyMaximumOccurrence);
} else {
if (maximumOccurrenceShouldBeCopiedAndSet == Boolean.FALSE) {
copy.maximumOccurrence = null;
}
}
}
{
Boolean domainValueShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetDomainValue());
if (domainValueShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceDomainValue;
sourceDomainValue = this.getDomainValue();
CharacterStringPropertyType copyDomainValue = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "domainValue", sourceDomainValue), sourceDomainValue, this.isSetDomainValue()));
copy.setDomainValue(copyDomainValue);
} else {
if (domainValueShouldBeCopiedAndSet == Boolean.FALSE) {
copy.domainValue = null;
}
}
}
{
Boolean parentEntityShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetParentEntity());
if (parentEntityShouldBeCopiedAndSet == Boolean.TRUE) {
List<CharacterStringPropertyType> sourceParentEntity;
sourceParentEntity = (this.isSetParentEntity()?this.getParentEntity():null);
@SuppressWarnings("unchecked")
List<CharacterStringPropertyType> copyParentEntity = ((List<CharacterStringPropertyType> ) strategy.copy(LocatorUtils.property(locator, "parentEntity", sourceParentEntity), sourceParentEntity, this.isSetParentEntity()));
copy.unsetParentEntity();
if (copyParentEntity!= null) {
List<CharacterStringPropertyType> uniqueParentEntityl = copy.getParentEntity();
uniqueParentEntityl.addAll(copyParentEntity);
}
} else {
if (parentEntityShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetParentEntity();
}
}
}
{
Boolean ruleShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetRule());
if (ruleShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceRule;
sourceRule = this.getRule();
CharacterStringPropertyType copyRule = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "rule", sourceRule), sourceRule, this.isSetRule()));
copy.setRule(copyRule);
} else {
if (ruleShouldBeCopiedAndSet == Boolean.FALSE) {
copy.rule = null;
}
}
}
{
Boolean rationaleShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetRationale());
if (rationaleShouldBeCopiedAndSet == Boolean.TRUE) {
List<CharacterStringPropertyType> sourceRationale;
sourceRationale = (this.isSetRationale()?this.getRationale():null);
@SuppressWarnings("unchecked")
List<CharacterStringPropertyType> copyRationale = ((List<CharacterStringPropertyType> ) strategy.copy(LocatorUtils.property(locator, "rationale", sourceRationale), sourceRationale, this.isSetRationale()));
copy.unsetRationale();
if (copyRationale!= null) {
List<CharacterStringPropertyType> uniqueRationalel = copy.getRationale();
uniqueRationalel.addAll(copyRationale);
}
} else {
if (rationaleShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetRationale();
}
}
}
{
Boolean sourceShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetSource());
if (sourceShouldBeCopiedAndSet == Boolean.TRUE) {
List<CIResponsiblePartyPropertyType> sourceSource;
sourceSource = (this.isSetSource()?this.getSource():null);
@SuppressWarnings("unchecked")
List<CIResponsiblePartyPropertyType> copySource = ((List<CIResponsiblePartyPropertyType> ) strategy.copy(LocatorUtils.property(locator, "source", sourceSource), sourceSource, this.isSetSource()));
copy.unsetSource();
if (copySource!= null) {
List<CIResponsiblePartyPropertyType> uniqueSourcel = copy.getSource();
uniqueSourcel.addAll(copySource);
}
} else {
if (sourceShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetSource();
}
}
}
}
return draftCopy;
}
public Object createNewInstance() {
return new MDExtendedElementInformationType();
}
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 MDExtendedElementInformationType) {
final MDExtendedElementInformationType target = this;
final MDExtendedElementInformationType leftObject = ((MDExtendedElementInformationType) left);
final MDExtendedElementInformationType rightObject = ((MDExtendedElementInformationType) right);
{
Boolean nameShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetName(), rightObject.isSetName());
if (nameShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsName;
lhsName = leftObject.getName();
CharacterStringPropertyType rhsName;
rhsName = rightObject.getName();
CharacterStringPropertyType mergedName = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "name", lhsName), LocatorUtils.property(rightLocator, "name", rhsName), lhsName, rhsName, leftObject.isSetName(), rightObject.isSetName()));
target.setName(mergedName);
} else {
if (nameShouldBeMergedAndSet == Boolean.FALSE) {
target.name = null;
}
}
}
{
Boolean shortNameShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetShortName(), rightObject.isSetShortName());
if (shortNameShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsShortName;
lhsShortName = leftObject.getShortName();
CharacterStringPropertyType rhsShortName;
rhsShortName = rightObject.getShortName();
CharacterStringPropertyType mergedShortName = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "shortName", lhsShortName), LocatorUtils.property(rightLocator, "shortName", rhsShortName), lhsShortName, rhsShortName, leftObject.isSetShortName(), rightObject.isSetShortName()));
target.setShortName(mergedShortName);
} else {
if (shortNameShouldBeMergedAndSet == Boolean.FALSE) {
target.shortName = null;
}
}
}
{
Boolean domainCodeShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetDomainCode(), rightObject.isSetDomainCode());
if (domainCodeShouldBeMergedAndSet == Boolean.TRUE) {
IntegerPropertyType lhsDomainCode;
lhsDomainCode = leftObject.getDomainCode();
IntegerPropertyType rhsDomainCode;
rhsDomainCode = rightObject.getDomainCode();
IntegerPropertyType mergedDomainCode = ((IntegerPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "domainCode", lhsDomainCode), LocatorUtils.property(rightLocator, "domainCode", rhsDomainCode), lhsDomainCode, rhsDomainCode, leftObject.isSetDomainCode(), rightObject.isSetDomainCode()));
target.setDomainCode(mergedDomainCode);
} else {
if (domainCodeShouldBeMergedAndSet == Boolean.FALSE) {
target.domainCode = null;
}
}
}
{
Boolean definitionShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetDefinition(), rightObject.isSetDefinition());
if (definitionShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsDefinition;
lhsDefinition = leftObject.getDefinition();
CharacterStringPropertyType rhsDefinition;
rhsDefinition = rightObject.getDefinition();
CharacterStringPropertyType mergedDefinition = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "definition", lhsDefinition), LocatorUtils.property(rightLocator, "definition", rhsDefinition), lhsDefinition, rhsDefinition, leftObject.isSetDefinition(), rightObject.isSetDefinition()));
target.setDefinition(mergedDefinition);
} else {
if (definitionShouldBeMergedAndSet == Boolean.FALSE) {
target.definition = null;
}
}
}
{
Boolean obligationShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetObligation(), rightObject.isSetObligation());
if (obligationShouldBeMergedAndSet == Boolean.TRUE) {
MDObligationCodePropertyType lhsObligation;
lhsObligation = leftObject.getObligation();
MDObligationCodePropertyType rhsObligation;
rhsObligation = rightObject.getObligation();
MDObligationCodePropertyType mergedObligation = ((MDObligationCodePropertyType) strategy.merge(LocatorUtils.property(leftLocator, "obligation", lhsObligation), LocatorUtils.property(rightLocator, "obligation", rhsObligation), lhsObligation, rhsObligation, leftObject.isSetObligation(), rightObject.isSetObligation()));
target.setObligation(mergedObligation);
} else {
if (obligationShouldBeMergedAndSet == Boolean.FALSE) {
target.obligation = null;
}
}
}
{
Boolean conditionShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetCondition(), rightObject.isSetCondition());
if (conditionShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsCondition;
lhsCondition = leftObject.getCondition();
CharacterStringPropertyType rhsCondition;
rhsCondition = rightObject.getCondition();
CharacterStringPropertyType mergedCondition = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "condition", lhsCondition), LocatorUtils.property(rightLocator, "condition", rhsCondition), lhsCondition, rhsCondition, leftObject.isSetCondition(), rightObject.isSetCondition()));
target.setCondition(mergedCondition);
} else {
if (conditionShouldBeMergedAndSet == Boolean.FALSE) {
target.condition = null;
}
}
}
{
Boolean dataTypeShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetDataType(), rightObject.isSetDataType());
if (dataTypeShouldBeMergedAndSet == Boolean.TRUE) {
MDDatatypeCodePropertyType lhsDataType;
lhsDataType = leftObject.getDataType();
MDDatatypeCodePropertyType rhsDataType;
rhsDataType = rightObject.getDataType();
MDDatatypeCodePropertyType mergedDataType = ((MDDatatypeCodePropertyType) strategy.merge(LocatorUtils.property(leftLocator, "dataType", lhsDataType), LocatorUtils.property(rightLocator, "dataType", rhsDataType), lhsDataType, rhsDataType, leftObject.isSetDataType(), rightObject.isSetDataType()));
target.setDataType(mergedDataType);
} else {
if (dataTypeShouldBeMergedAndSet == Boolean.FALSE) {
target.dataType = null;
}
}
}
{
Boolean maximumOccurrenceShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetMaximumOccurrence(), rightObject.isSetMaximumOccurrence());
if (maximumOccurrenceShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsMaximumOccurrence;
lhsMaximumOccurrence = leftObject.getMaximumOccurrence();
CharacterStringPropertyType rhsMaximumOccurrence;
rhsMaximumOccurrence = rightObject.getMaximumOccurrence();
CharacterStringPropertyType mergedMaximumOccurrence = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "maximumOccurrence", lhsMaximumOccurrence), LocatorUtils.property(rightLocator, "maximumOccurrence", rhsMaximumOccurrence), lhsMaximumOccurrence, rhsMaximumOccurrence, leftObject.isSetMaximumOccurrence(), rightObject.isSetMaximumOccurrence()));
target.setMaximumOccurrence(mergedMaximumOccurrence);
} else {
if (maximumOccurrenceShouldBeMergedAndSet == Boolean.FALSE) {
target.maximumOccurrence = null;
}
}
}
{
Boolean domainValueShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetDomainValue(), rightObject.isSetDomainValue());
if (domainValueShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsDomainValue;
lhsDomainValue = leftObject.getDomainValue();
CharacterStringPropertyType rhsDomainValue;
rhsDomainValue = rightObject.getDomainValue();
CharacterStringPropertyType mergedDomainValue = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "domainValue", lhsDomainValue), LocatorUtils.property(rightLocator, "domainValue", rhsDomainValue), lhsDomainValue, rhsDomainValue, leftObject.isSetDomainValue(), rightObject.isSetDomainValue()));
target.setDomainValue(mergedDomainValue);
} else {
if (domainValueShouldBeMergedAndSet == Boolean.FALSE) {
target.domainValue = null;
}
}
}
{
Boolean parentEntityShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetParentEntity(), rightObject.isSetParentEntity());
if (parentEntityShouldBeMergedAndSet == Boolean.TRUE) {
List<CharacterStringPropertyType> lhsParentEntity;
lhsParentEntity = (leftObject.isSetParentEntity()?leftObject.getParentEntity():null);
List<CharacterStringPropertyType> rhsParentEntity;
rhsParentEntity = (rightObject.isSetParentEntity()?rightObject.getParentEntity():null);
List<CharacterStringPropertyType> mergedParentEntity = ((List<CharacterStringPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "parentEntity", lhsParentEntity), LocatorUtils.property(rightLocator, "parentEntity", rhsParentEntity), lhsParentEntity, rhsParentEntity, leftObject.isSetParentEntity(), rightObject.isSetParentEntity()));
target.unsetParentEntity();
if (mergedParentEntity!= null) {
List<CharacterStringPropertyType> uniqueParentEntityl = target.getParentEntity();
uniqueParentEntityl.addAll(mergedParentEntity);
}
} else {
if (parentEntityShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetParentEntity();
}
}
}
{
Boolean ruleShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetRule(), rightObject.isSetRule());
if (ruleShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsRule;
lhsRule = leftObject.getRule();
CharacterStringPropertyType rhsRule;
rhsRule = rightObject.getRule();
CharacterStringPropertyType mergedRule = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "rule", lhsRule), LocatorUtils.property(rightLocator, "rule", rhsRule), lhsRule, rhsRule, leftObject.isSetRule(), rightObject.isSetRule()));
target.setRule(mergedRule);
} else {
if (ruleShouldBeMergedAndSet == Boolean.FALSE) {
target.rule = null;
}
}
}
{
Boolean rationaleShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetRationale(), rightObject.isSetRationale());
if (rationaleShouldBeMergedAndSet == Boolean.TRUE) {
List<CharacterStringPropertyType> lhsRationale;
lhsRationale = (leftObject.isSetRationale()?leftObject.getRationale():null);
List<CharacterStringPropertyType> rhsRationale;
rhsRationale = (rightObject.isSetRationale()?rightObject.getRationale():null);
List<CharacterStringPropertyType> mergedRationale = ((List<CharacterStringPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "rationale", lhsRationale), LocatorUtils.property(rightLocator, "rationale", rhsRationale), lhsRationale, rhsRationale, leftObject.isSetRationale(), rightObject.isSetRationale()));
target.unsetRationale();
if (mergedRationale!= null) {
List<CharacterStringPropertyType> uniqueRationalel = target.getRationale();
uniqueRationalel.addAll(mergedRationale);
}
} else {
if (rationaleShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetRationale();
}
}
}
{
Boolean sourceShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetSource(), rightObject.isSetSource());
if (sourceShouldBeMergedAndSet == Boolean.TRUE) {
List<CIResponsiblePartyPropertyType> lhsSource;
lhsSource = (leftObject.isSetSource()?leftObject.getSource():null);
List<CIResponsiblePartyPropertyType> rhsSource;
rhsSource = (rightObject.isSetSource()?rightObject.getSource():null);
List<CIResponsiblePartyPropertyType> mergedSource = ((List<CIResponsiblePartyPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "source", lhsSource), LocatorUtils.property(rightLocator, "source", rhsSource), lhsSource, rhsSource, leftObject.isSetSource(), rightObject.isSetSource()));
target.unsetSource();
if (mergedSource!= null) {
List<CIResponsiblePartyPropertyType> uniqueSourcel = target.getSource();
uniqueSourcel.addAll(mergedSource);
}
} else {
if (sourceShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetSource();
}
}
}
}
}
public void setParentEntity(List<CharacterStringPropertyType> value) {
this.parentEntity = null;
if (value!= null) {
List<CharacterStringPropertyType> draftl = this.getParentEntity();
draftl.addAll(value);
}
}
public void setRationale(List<CharacterStringPropertyType> value) {
this.rationale = null;
if (value!= null) {
List<CharacterStringPropertyType> draftl = this.getRationale();
draftl.addAll(value);
}
}
public void setSource(List<CIResponsiblePartyPropertyType> value) {
this.source = null;
if (value!= null) {
List<CIResponsiblePartyPropertyType> draftl = this.getSource();
draftl.addAll(value);
}
}
}