// // 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.Size; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlType; import org.isotc211._2005.gco.CharacterStringPropertyType; import org.isotc211._2005.gco.ObjectReferencePropertyType; 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; /** * Description of the class of information covered by the information * * <p>Java class for MD_ScopeDescription_Type complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <complexType name="MD_ScopeDescription_Type"> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <choice> * <element name="attributes" type="{http://www.isotc211.org/2005/gco}ObjectReference_PropertyType" maxOccurs="unbounded"/> * <element name="features" type="{http://www.isotc211.org/2005/gco}ObjectReference_PropertyType" maxOccurs="unbounded"/> * <element name="featureInstances" type="{http://www.isotc211.org/2005/gco}ObjectReference_PropertyType" maxOccurs="unbounded"/> * <element name="attributeInstances" type="{http://www.isotc211.org/2005/gco}ObjectReference_PropertyType" maxOccurs="unbounded"/> * <element name="dataset" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType"/> * <element name="other" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType"/> * </choice> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "MD_ScopeDescription_Type", propOrder = { "attributes", "features", "featureInstances", "attributeInstances", "dataset", "other" }) public class MDScopeDescriptionType implements Serializable, Cloneable, CopyTo2, Equals2, HashCode2, MergeFrom2, ToString2 { private final static long serialVersionUID = 1L; @Size(min = 1) @Valid protected List<ObjectReferencePropertyType> attributes; @Size(min = 1) @Valid protected List<ObjectReferencePropertyType> features; @Size(min = 1) @Valid protected List<ObjectReferencePropertyType> featureInstances; @Size(min = 1) @Valid protected List<ObjectReferencePropertyType> attributeInstances; @Valid protected CharacterStringPropertyType dataset; @Valid protected CharacterStringPropertyType other; /** * Gets the value of the attributes 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 attributes property. * * <p> * For example, to add a new item, do as follows: * <pre> * getAttributes().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link ObjectReferencePropertyType } * * */ public List<ObjectReferencePropertyType> getAttributes() { if (attributes == null) { attributes = new ArrayList<ObjectReferencePropertyType>(); } return this.attributes; } public boolean isSetAttributes() { return ((this.attributes!= null)&&(!this.attributes.isEmpty())); } public void unsetAttributes() { this.attributes = null; } /** * Gets the value of the features 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 features property. * * <p> * For example, to add a new item, do as follows: * <pre> * getFeatures().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link ObjectReferencePropertyType } * * */ public List<ObjectReferencePropertyType> getFeatures() { if (features == null) { features = new ArrayList<ObjectReferencePropertyType>(); } return this.features; } public boolean isSetFeatures() { return ((this.features!= null)&&(!this.features.isEmpty())); } public void unsetFeatures() { this.features = null; } /** * Gets the value of the featureInstances 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 featureInstances property. * * <p> * For example, to add a new item, do as follows: * <pre> * getFeatureInstances().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link ObjectReferencePropertyType } * * */ public List<ObjectReferencePropertyType> getFeatureInstances() { if (featureInstances == null) { featureInstances = new ArrayList<ObjectReferencePropertyType>(); } return this.featureInstances; } public boolean isSetFeatureInstances() { return ((this.featureInstances!= null)&&(!this.featureInstances.isEmpty())); } public void unsetFeatureInstances() { this.featureInstances = null; } /** * Gets the value of the attributeInstances 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 attributeInstances property. * * <p> * For example, to add a new item, do as follows: * <pre> * getAttributeInstances().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link ObjectReferencePropertyType } * * */ public List<ObjectReferencePropertyType> getAttributeInstances() { if (attributeInstances == null) { attributeInstances = new ArrayList<ObjectReferencePropertyType>(); } return this.attributeInstances; } public boolean isSetAttributeInstances() { return ((this.attributeInstances!= null)&&(!this.attributeInstances.isEmpty())); } public void unsetAttributeInstances() { this.attributeInstances = null; } /** * Gets the value of the dataset property. * * @return * possible object is * {@link CharacterStringPropertyType } * */ public CharacterStringPropertyType getDataset() { return dataset; } /** * Sets the value of the dataset property. * * @param value * allowed object is * {@link CharacterStringPropertyType } * */ public void setDataset(CharacterStringPropertyType value) { this.dataset = value; } public boolean isSetDataset() { return (this.dataset!= null); } /** * Gets the value of the other property. * * @return * possible object is * {@link CharacterStringPropertyType } * */ public CharacterStringPropertyType getOther() { return other; } /** * Sets the value of the other property. * * @param value * allowed object is * {@link CharacterStringPropertyType } * */ public void setOther(CharacterStringPropertyType value) { this.other = value; } public boolean isSetOther() { return (this.other!= 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) { { List<ObjectReferencePropertyType> theAttributes; theAttributes = (this.isSetAttributes()?this.getAttributes():null); strategy.appendField(locator, this, "attributes", buffer, theAttributes, this.isSetAttributes()); } { List<ObjectReferencePropertyType> theFeatures; theFeatures = (this.isSetFeatures()?this.getFeatures():null); strategy.appendField(locator, this, "features", buffer, theFeatures, this.isSetFeatures()); } { List<ObjectReferencePropertyType> theFeatureInstances; theFeatureInstances = (this.isSetFeatureInstances()?this.getFeatureInstances():null); strategy.appendField(locator, this, "featureInstances", buffer, theFeatureInstances, this.isSetFeatureInstances()); } { List<ObjectReferencePropertyType> theAttributeInstances; theAttributeInstances = (this.isSetAttributeInstances()?this.getAttributeInstances():null); strategy.appendField(locator, this, "attributeInstances", buffer, theAttributeInstances, this.isSetAttributeInstances()); } { CharacterStringPropertyType theDataset; theDataset = this.getDataset(); strategy.appendField(locator, this, "dataset", buffer, theDataset, this.isSetDataset()); } { CharacterStringPropertyType theOther; theOther = this.getOther(); strategy.appendField(locator, this, "other", buffer, theOther, this.isSetOther()); } 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; } final MDScopeDescriptionType that = ((MDScopeDescriptionType) object); { List<ObjectReferencePropertyType> lhsAttributes; lhsAttributes = (this.isSetAttributes()?this.getAttributes():null); List<ObjectReferencePropertyType> rhsAttributes; rhsAttributes = (that.isSetAttributes()?that.getAttributes():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "attributes", lhsAttributes), LocatorUtils.property(thatLocator, "attributes", rhsAttributes), lhsAttributes, rhsAttributes, this.isSetAttributes(), that.isSetAttributes())) { return false; } } { List<ObjectReferencePropertyType> lhsFeatures; lhsFeatures = (this.isSetFeatures()?this.getFeatures():null); List<ObjectReferencePropertyType> rhsFeatures; rhsFeatures = (that.isSetFeatures()?that.getFeatures():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "features", lhsFeatures), LocatorUtils.property(thatLocator, "features", rhsFeatures), lhsFeatures, rhsFeatures, this.isSetFeatures(), that.isSetFeatures())) { return false; } } { List<ObjectReferencePropertyType> lhsFeatureInstances; lhsFeatureInstances = (this.isSetFeatureInstances()?this.getFeatureInstances():null); List<ObjectReferencePropertyType> rhsFeatureInstances; rhsFeatureInstances = (that.isSetFeatureInstances()?that.getFeatureInstances():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "featureInstances", lhsFeatureInstances), LocatorUtils.property(thatLocator, "featureInstances", rhsFeatureInstances), lhsFeatureInstances, rhsFeatureInstances, this.isSetFeatureInstances(), that.isSetFeatureInstances())) { return false; } } { List<ObjectReferencePropertyType> lhsAttributeInstances; lhsAttributeInstances = (this.isSetAttributeInstances()?this.getAttributeInstances():null); List<ObjectReferencePropertyType> rhsAttributeInstances; rhsAttributeInstances = (that.isSetAttributeInstances()?that.getAttributeInstances():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "attributeInstances", lhsAttributeInstances), LocatorUtils.property(thatLocator, "attributeInstances", rhsAttributeInstances), lhsAttributeInstances, rhsAttributeInstances, this.isSetAttributeInstances(), that.isSetAttributeInstances())) { return false; } } { CharacterStringPropertyType lhsDataset; lhsDataset = this.getDataset(); CharacterStringPropertyType rhsDataset; rhsDataset = that.getDataset(); if (!strategy.equals(LocatorUtils.property(thisLocator, "dataset", lhsDataset), LocatorUtils.property(thatLocator, "dataset", rhsDataset), lhsDataset, rhsDataset, this.isSetDataset(), that.isSetDataset())) { return false; } } { CharacterStringPropertyType lhsOther; lhsOther = this.getOther(); CharacterStringPropertyType rhsOther; rhsOther = that.getOther(); if (!strategy.equals(LocatorUtils.property(thisLocator, "other", lhsOther), LocatorUtils.property(thatLocator, "other", rhsOther), lhsOther, rhsOther, this.isSetOther(), that.isSetOther())) { 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 = 1; { List<ObjectReferencePropertyType> theAttributes; theAttributes = (this.isSetAttributes()?this.getAttributes():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "attributes", theAttributes), currentHashCode, theAttributes, this.isSetAttributes()); } { List<ObjectReferencePropertyType> theFeatures; theFeatures = (this.isSetFeatures()?this.getFeatures():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "features", theFeatures), currentHashCode, theFeatures, this.isSetFeatures()); } { List<ObjectReferencePropertyType> theFeatureInstances; theFeatureInstances = (this.isSetFeatureInstances()?this.getFeatureInstances():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "featureInstances", theFeatureInstances), currentHashCode, theFeatureInstances, this.isSetFeatureInstances()); } { List<ObjectReferencePropertyType> theAttributeInstances; theAttributeInstances = (this.isSetAttributeInstances()?this.getAttributeInstances():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "attributeInstances", theAttributeInstances), currentHashCode, theAttributeInstances, this.isSetAttributeInstances()); } { CharacterStringPropertyType theDataset; theDataset = this.getDataset(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "dataset", theDataset), currentHashCode, theDataset, this.isSetDataset()); } { CharacterStringPropertyType theOther; theOther = this.getOther(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "other", theOther), currentHashCode, theOther, this.isSetOther()); } 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); if (draftCopy instanceof MDScopeDescriptionType) { final MDScopeDescriptionType copy = ((MDScopeDescriptionType) draftCopy); { Boolean attributesShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetAttributes()); if (attributesShouldBeCopiedAndSet == Boolean.TRUE) { List<ObjectReferencePropertyType> sourceAttributes; sourceAttributes = (this.isSetAttributes()?this.getAttributes():null); @SuppressWarnings("unchecked") List<ObjectReferencePropertyType> copyAttributes = ((List<ObjectReferencePropertyType> ) strategy.copy(LocatorUtils.property(locator, "attributes", sourceAttributes), sourceAttributes, this.isSetAttributes())); copy.unsetAttributes(); if (copyAttributes!= null) { List<ObjectReferencePropertyType> uniqueAttributesl = copy.getAttributes(); uniqueAttributesl.addAll(copyAttributes); } } else { if (attributesShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetAttributes(); } } } { Boolean featuresShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetFeatures()); if (featuresShouldBeCopiedAndSet == Boolean.TRUE) { List<ObjectReferencePropertyType> sourceFeatures; sourceFeatures = (this.isSetFeatures()?this.getFeatures():null); @SuppressWarnings("unchecked") List<ObjectReferencePropertyType> copyFeatures = ((List<ObjectReferencePropertyType> ) strategy.copy(LocatorUtils.property(locator, "features", sourceFeatures), sourceFeatures, this.isSetFeatures())); copy.unsetFeatures(); if (copyFeatures!= null) { List<ObjectReferencePropertyType> uniqueFeaturesl = copy.getFeatures(); uniqueFeaturesl.addAll(copyFeatures); } } else { if (featuresShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetFeatures(); } } } { Boolean featureInstancesShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetFeatureInstances()); if (featureInstancesShouldBeCopiedAndSet == Boolean.TRUE) { List<ObjectReferencePropertyType> sourceFeatureInstances; sourceFeatureInstances = (this.isSetFeatureInstances()?this.getFeatureInstances():null); @SuppressWarnings("unchecked") List<ObjectReferencePropertyType> copyFeatureInstances = ((List<ObjectReferencePropertyType> ) strategy.copy(LocatorUtils.property(locator, "featureInstances", sourceFeatureInstances), sourceFeatureInstances, this.isSetFeatureInstances())); copy.unsetFeatureInstances(); if (copyFeatureInstances!= null) { List<ObjectReferencePropertyType> uniqueFeatureInstancesl = copy.getFeatureInstances(); uniqueFeatureInstancesl.addAll(copyFeatureInstances); } } else { if (featureInstancesShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetFeatureInstances(); } } } { Boolean attributeInstancesShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetAttributeInstances()); if (attributeInstancesShouldBeCopiedAndSet == Boolean.TRUE) { List<ObjectReferencePropertyType> sourceAttributeInstances; sourceAttributeInstances = (this.isSetAttributeInstances()?this.getAttributeInstances():null); @SuppressWarnings("unchecked") List<ObjectReferencePropertyType> copyAttributeInstances = ((List<ObjectReferencePropertyType> ) strategy.copy(LocatorUtils.property(locator, "attributeInstances", sourceAttributeInstances), sourceAttributeInstances, this.isSetAttributeInstances())); copy.unsetAttributeInstances(); if (copyAttributeInstances!= null) { List<ObjectReferencePropertyType> uniqueAttributeInstancesl = copy.getAttributeInstances(); uniqueAttributeInstancesl.addAll(copyAttributeInstances); } } else { if (attributeInstancesShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetAttributeInstances(); } } } { Boolean datasetShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetDataset()); if (datasetShouldBeCopiedAndSet == Boolean.TRUE) { CharacterStringPropertyType sourceDataset; sourceDataset = this.getDataset(); CharacterStringPropertyType copyDataset = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "dataset", sourceDataset), sourceDataset, this.isSetDataset())); copy.setDataset(copyDataset); } else { if (datasetShouldBeCopiedAndSet == Boolean.FALSE) { copy.dataset = null; } } } { Boolean otherShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetOther()); if (otherShouldBeCopiedAndSet == Boolean.TRUE) { CharacterStringPropertyType sourceOther; sourceOther = this.getOther(); CharacterStringPropertyType copyOther = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "other", sourceOther), sourceOther, this.isSetOther())); copy.setOther(copyOther); } else { if (otherShouldBeCopiedAndSet == Boolean.FALSE) { copy.other = null; } } } } return draftCopy; } public Object createNewInstance() { return new MDScopeDescriptionType(); } 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) { if (right instanceof MDScopeDescriptionType) { final MDScopeDescriptionType target = this; final MDScopeDescriptionType leftObject = ((MDScopeDescriptionType) left); final MDScopeDescriptionType rightObject = ((MDScopeDescriptionType) right); { Boolean attributesShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetAttributes(), rightObject.isSetAttributes()); if (attributesShouldBeMergedAndSet == Boolean.TRUE) { List<ObjectReferencePropertyType> lhsAttributes; lhsAttributes = (leftObject.isSetAttributes()?leftObject.getAttributes():null); List<ObjectReferencePropertyType> rhsAttributes; rhsAttributes = (rightObject.isSetAttributes()?rightObject.getAttributes():null); List<ObjectReferencePropertyType> mergedAttributes = ((List<ObjectReferencePropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "attributes", lhsAttributes), LocatorUtils.property(rightLocator, "attributes", rhsAttributes), lhsAttributes, rhsAttributes, leftObject.isSetAttributes(), rightObject.isSetAttributes())); target.unsetAttributes(); if (mergedAttributes!= null) { List<ObjectReferencePropertyType> uniqueAttributesl = target.getAttributes(); uniqueAttributesl.addAll(mergedAttributes); } } else { if (attributesShouldBeMergedAndSet == Boolean.FALSE) { target.unsetAttributes(); } } } { Boolean featuresShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetFeatures(), rightObject.isSetFeatures()); if (featuresShouldBeMergedAndSet == Boolean.TRUE) { List<ObjectReferencePropertyType> lhsFeatures; lhsFeatures = (leftObject.isSetFeatures()?leftObject.getFeatures():null); List<ObjectReferencePropertyType> rhsFeatures; rhsFeatures = (rightObject.isSetFeatures()?rightObject.getFeatures():null); List<ObjectReferencePropertyType> mergedFeatures = ((List<ObjectReferencePropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "features", lhsFeatures), LocatorUtils.property(rightLocator, "features", rhsFeatures), lhsFeatures, rhsFeatures, leftObject.isSetFeatures(), rightObject.isSetFeatures())); target.unsetFeatures(); if (mergedFeatures!= null) { List<ObjectReferencePropertyType> uniqueFeaturesl = target.getFeatures(); uniqueFeaturesl.addAll(mergedFeatures); } } else { if (featuresShouldBeMergedAndSet == Boolean.FALSE) { target.unsetFeatures(); } } } { Boolean featureInstancesShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetFeatureInstances(), rightObject.isSetFeatureInstances()); if (featureInstancesShouldBeMergedAndSet == Boolean.TRUE) { List<ObjectReferencePropertyType> lhsFeatureInstances; lhsFeatureInstances = (leftObject.isSetFeatureInstances()?leftObject.getFeatureInstances():null); List<ObjectReferencePropertyType> rhsFeatureInstances; rhsFeatureInstances = (rightObject.isSetFeatureInstances()?rightObject.getFeatureInstances():null); List<ObjectReferencePropertyType> mergedFeatureInstances = ((List<ObjectReferencePropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "featureInstances", lhsFeatureInstances), LocatorUtils.property(rightLocator, "featureInstances", rhsFeatureInstances), lhsFeatureInstances, rhsFeatureInstances, leftObject.isSetFeatureInstances(), rightObject.isSetFeatureInstances())); target.unsetFeatureInstances(); if (mergedFeatureInstances!= null) { List<ObjectReferencePropertyType> uniqueFeatureInstancesl = target.getFeatureInstances(); uniqueFeatureInstancesl.addAll(mergedFeatureInstances); } } else { if (featureInstancesShouldBeMergedAndSet == Boolean.FALSE) { target.unsetFeatureInstances(); } } } { Boolean attributeInstancesShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetAttributeInstances(), rightObject.isSetAttributeInstances()); if (attributeInstancesShouldBeMergedAndSet == Boolean.TRUE) { List<ObjectReferencePropertyType> lhsAttributeInstances; lhsAttributeInstances = (leftObject.isSetAttributeInstances()?leftObject.getAttributeInstances():null); List<ObjectReferencePropertyType> rhsAttributeInstances; rhsAttributeInstances = (rightObject.isSetAttributeInstances()?rightObject.getAttributeInstances():null); List<ObjectReferencePropertyType> mergedAttributeInstances = ((List<ObjectReferencePropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "attributeInstances", lhsAttributeInstances), LocatorUtils.property(rightLocator, "attributeInstances", rhsAttributeInstances), lhsAttributeInstances, rhsAttributeInstances, leftObject.isSetAttributeInstances(), rightObject.isSetAttributeInstances())); target.unsetAttributeInstances(); if (mergedAttributeInstances!= null) { List<ObjectReferencePropertyType> uniqueAttributeInstancesl = target.getAttributeInstances(); uniqueAttributeInstancesl.addAll(mergedAttributeInstances); } } else { if (attributeInstancesShouldBeMergedAndSet == Boolean.FALSE) { target.unsetAttributeInstances(); } } } { Boolean datasetShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetDataset(), rightObject.isSetDataset()); if (datasetShouldBeMergedAndSet == Boolean.TRUE) { CharacterStringPropertyType lhsDataset; lhsDataset = leftObject.getDataset(); CharacterStringPropertyType rhsDataset; rhsDataset = rightObject.getDataset(); CharacterStringPropertyType mergedDataset = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "dataset", lhsDataset), LocatorUtils.property(rightLocator, "dataset", rhsDataset), lhsDataset, rhsDataset, leftObject.isSetDataset(), rightObject.isSetDataset())); target.setDataset(mergedDataset); } else { if (datasetShouldBeMergedAndSet == Boolean.FALSE) { target.dataset = null; } } } { Boolean otherShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetOther(), rightObject.isSetOther()); if (otherShouldBeMergedAndSet == Boolean.TRUE) { CharacterStringPropertyType lhsOther; lhsOther = leftObject.getOther(); CharacterStringPropertyType rhsOther; rhsOther = rightObject.getOther(); CharacterStringPropertyType mergedOther = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "other", lhsOther), LocatorUtils.property(rightLocator, "other", rhsOther), lhsOther, rhsOther, leftObject.isSetOther(), rightObject.isSetOther())); target.setOther(mergedOther); } else { if (otherShouldBeMergedAndSet == Boolean.FALSE) { target.other = null; } } } } } public void setAttributes(List<ObjectReferencePropertyType> value) { this.attributes = null; if (value!= null) { List<ObjectReferencePropertyType> draftl = this.getAttributes(); draftl.addAll(value); } } public void setFeatures(List<ObjectReferencePropertyType> value) { this.features = null; if (value!= null) { List<ObjectReferencePropertyType> draftl = this.getFeatures(); draftl.addAll(value); } } public void setFeatureInstances(List<ObjectReferencePropertyType> value) { this.featureInstances = null; if (value!= null) { List<ObjectReferencePropertyType> draftl = this.getFeatureInstances(); draftl.addAll(value); } } public void setAttributeInstances(List<ObjectReferencePropertyType> value) { this.attributeInstances = null; if (value!= null) { List<ObjectReferencePropertyType> draftl = this.getAttributeInstances(); draftl.addAll(value); } } }