//
// 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.CharacterStringPropertyType;
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;
/**
* <p>Java class for MD_DataIdentification_Type complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="MD_DataIdentification_Type">
* <complexContent>
* <extension base="{http://www.isotc211.org/2005/gmd}AbstractMD_Identification_Type">
* <sequence>
* <element name="spatialRepresentationType" type="{http://www.isotc211.org/2005/gmd}MD_SpatialRepresentationTypeCode_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="spatialResolution" type="{http://www.isotc211.org/2005/gmd}MD_Resolution_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="language" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" maxOccurs="unbounded"/>
* <element name="characterSet" type="{http://www.isotc211.org/2005/gmd}MD_CharacterSetCode_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="topicCategory" type="{http://www.isotc211.org/2005/gmd}MD_TopicCategoryCode_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="environmentDescription" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" minOccurs="0"/>
* <element name="extent" type="{http://www.isotc211.org/2005/gmd}EX_Extent_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="supplementalInformation" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" minOccurs="0"/>
* </sequence>
* </extension>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MD_DataIdentification_Type", propOrder = {
"spatialRepresentationType",
"spatialResolution",
"language",
"characterSet",
"topicCategory",
"environmentDescription",
"extent",
"supplementalInformation"
})
public class MDDataIdentificationType
extends AbstractMDIdentificationType
implements Serializable, Cloneable, CopyTo2, Equals2, HashCode2, MergeFrom2, ToString2
{
private final static long serialVersionUID = 1L;
@Valid
protected List<MDSpatialRepresentationTypeCodePropertyType> spatialRepresentationType;
@Valid
protected List<MDResolutionPropertyType> spatialResolution;
@XmlElement(required = true)
@NotNull(message = "MDDataIdentificationType.language {javax.validation.constraints.NotNull.message}")
@Size(min = 1)
@Valid
protected List<CharacterStringPropertyType> language;
@Valid
protected List<MDCharacterSetCodePropertyType> characterSet;
@Valid
protected List<MDTopicCategoryCodePropertyType> topicCategory;
@Valid
protected CharacterStringPropertyType environmentDescription;
@Valid
protected List<EXExtentPropertyType> extent;
@Valid
protected CharacterStringPropertyType supplementalInformation;
/**
* Gets the value of the spatialRepresentationType 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 spatialRepresentationType property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getSpatialRepresentationType().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link MDSpatialRepresentationTypeCodePropertyType }
*
*
*/
public List<MDSpatialRepresentationTypeCodePropertyType> getSpatialRepresentationType() {
if (spatialRepresentationType == null) {
spatialRepresentationType = new ArrayList<MDSpatialRepresentationTypeCodePropertyType>();
}
return this.spatialRepresentationType;
}
public boolean isSetSpatialRepresentationType() {
return ((this.spatialRepresentationType!= null)&&(!this.spatialRepresentationType.isEmpty()));
}
public void unsetSpatialRepresentationType() {
this.spatialRepresentationType = null;
}
/**
* Gets the value of the spatialResolution 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 spatialResolution property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getSpatialResolution().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link MDResolutionPropertyType }
*
*
*/
public List<MDResolutionPropertyType> getSpatialResolution() {
if (spatialResolution == null) {
spatialResolution = new ArrayList<MDResolutionPropertyType>();
}
return this.spatialResolution;
}
public boolean isSetSpatialResolution() {
return ((this.spatialResolution!= null)&&(!this.spatialResolution.isEmpty()));
}
public void unsetSpatialResolution() {
this.spatialResolution = null;
}
/**
* Gets the value of the language 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 language property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getLanguage().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CharacterStringPropertyType }
*
*
*/
public List<CharacterStringPropertyType> getLanguage() {
if (language == null) {
language = new ArrayList<CharacterStringPropertyType>();
}
return this.language;
}
public boolean isSetLanguage() {
return ((this.language!= null)&&(!this.language.isEmpty()));
}
public void unsetLanguage() {
this.language = null;
}
/**
* Gets the value of the characterSet 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 characterSet property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getCharacterSet().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link MDCharacterSetCodePropertyType }
*
*
*/
public List<MDCharacterSetCodePropertyType> getCharacterSet() {
if (characterSet == null) {
characterSet = new ArrayList<MDCharacterSetCodePropertyType>();
}
return this.characterSet;
}
public boolean isSetCharacterSet() {
return ((this.characterSet!= null)&&(!this.characterSet.isEmpty()));
}
public void unsetCharacterSet() {
this.characterSet = null;
}
/**
* Gets the value of the topicCategory 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 topicCategory property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getTopicCategory().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link MDTopicCategoryCodePropertyType }
*
*
*/
public List<MDTopicCategoryCodePropertyType> getTopicCategory() {
if (topicCategory == null) {
topicCategory = new ArrayList<MDTopicCategoryCodePropertyType>();
}
return this.topicCategory;
}
public boolean isSetTopicCategory() {
return ((this.topicCategory!= null)&&(!this.topicCategory.isEmpty()));
}
public void unsetTopicCategory() {
this.topicCategory = null;
}
/**
* Gets the value of the environmentDescription property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getEnvironmentDescription() {
return environmentDescription;
}
/**
* Sets the value of the environmentDescription property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setEnvironmentDescription(CharacterStringPropertyType value) {
this.environmentDescription = value;
}
public boolean isSetEnvironmentDescription() {
return (this.environmentDescription!= null);
}
/**
* Gets the value of the extent 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 extent property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getExtent().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link EXExtentPropertyType }
*
*
*/
public List<EXExtentPropertyType> getExtent() {
if (extent == null) {
extent = new ArrayList<EXExtentPropertyType>();
}
return this.extent;
}
public boolean isSetExtent() {
return ((this.extent!= null)&&(!this.extent.isEmpty()));
}
public void unsetExtent() {
this.extent = null;
}
/**
* Gets the value of the supplementalInformation property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getSupplementalInformation() {
return supplementalInformation;
}
/**
* Sets the value of the supplementalInformation property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setSupplementalInformation(CharacterStringPropertyType value) {
this.supplementalInformation = value;
}
public boolean isSetSupplementalInformation() {
return (this.supplementalInformation!= 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);
{
List<MDSpatialRepresentationTypeCodePropertyType> theSpatialRepresentationType;
theSpatialRepresentationType = (this.isSetSpatialRepresentationType()?this.getSpatialRepresentationType():null);
strategy.appendField(locator, this, "spatialRepresentationType", buffer, theSpatialRepresentationType, this.isSetSpatialRepresentationType());
}
{
List<MDResolutionPropertyType> theSpatialResolution;
theSpatialResolution = (this.isSetSpatialResolution()?this.getSpatialResolution():null);
strategy.appendField(locator, this, "spatialResolution", buffer, theSpatialResolution, this.isSetSpatialResolution());
}
{
List<CharacterStringPropertyType> theLanguage;
theLanguage = (this.isSetLanguage()?this.getLanguage():null);
strategy.appendField(locator, this, "language", buffer, theLanguage, this.isSetLanguage());
}
{
List<MDCharacterSetCodePropertyType> theCharacterSet;
theCharacterSet = (this.isSetCharacterSet()?this.getCharacterSet():null);
strategy.appendField(locator, this, "characterSet", buffer, theCharacterSet, this.isSetCharacterSet());
}
{
List<MDTopicCategoryCodePropertyType> theTopicCategory;
theTopicCategory = (this.isSetTopicCategory()?this.getTopicCategory():null);
strategy.appendField(locator, this, "topicCategory", buffer, theTopicCategory, this.isSetTopicCategory());
}
{
CharacterStringPropertyType theEnvironmentDescription;
theEnvironmentDescription = this.getEnvironmentDescription();
strategy.appendField(locator, this, "environmentDescription", buffer, theEnvironmentDescription, this.isSetEnvironmentDescription());
}
{
List<EXExtentPropertyType> theExtent;
theExtent = (this.isSetExtent()?this.getExtent():null);
strategy.appendField(locator, this, "extent", buffer, theExtent, this.isSetExtent());
}
{
CharacterStringPropertyType theSupplementalInformation;
theSupplementalInformation = this.getSupplementalInformation();
strategy.appendField(locator, this, "supplementalInformation", buffer, theSupplementalInformation, this.isSetSupplementalInformation());
}
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 MDDataIdentificationType that = ((MDDataIdentificationType) object);
{
List<MDSpatialRepresentationTypeCodePropertyType> lhsSpatialRepresentationType;
lhsSpatialRepresentationType = (this.isSetSpatialRepresentationType()?this.getSpatialRepresentationType():null);
List<MDSpatialRepresentationTypeCodePropertyType> rhsSpatialRepresentationType;
rhsSpatialRepresentationType = (that.isSetSpatialRepresentationType()?that.getSpatialRepresentationType():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "spatialRepresentationType", lhsSpatialRepresentationType), LocatorUtils.property(thatLocator, "spatialRepresentationType", rhsSpatialRepresentationType), lhsSpatialRepresentationType, rhsSpatialRepresentationType, this.isSetSpatialRepresentationType(), that.isSetSpatialRepresentationType())) {
return false;
}
}
{
List<MDResolutionPropertyType> lhsSpatialResolution;
lhsSpatialResolution = (this.isSetSpatialResolution()?this.getSpatialResolution():null);
List<MDResolutionPropertyType> rhsSpatialResolution;
rhsSpatialResolution = (that.isSetSpatialResolution()?that.getSpatialResolution():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "spatialResolution", lhsSpatialResolution), LocatorUtils.property(thatLocator, "spatialResolution", rhsSpatialResolution), lhsSpatialResolution, rhsSpatialResolution, this.isSetSpatialResolution(), that.isSetSpatialResolution())) {
return false;
}
}
{
List<CharacterStringPropertyType> lhsLanguage;
lhsLanguage = (this.isSetLanguage()?this.getLanguage():null);
List<CharacterStringPropertyType> rhsLanguage;
rhsLanguage = (that.isSetLanguage()?that.getLanguage():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "language", lhsLanguage), LocatorUtils.property(thatLocator, "language", rhsLanguage), lhsLanguage, rhsLanguage, this.isSetLanguage(), that.isSetLanguage())) {
return false;
}
}
{
List<MDCharacterSetCodePropertyType> lhsCharacterSet;
lhsCharacterSet = (this.isSetCharacterSet()?this.getCharacterSet():null);
List<MDCharacterSetCodePropertyType> rhsCharacterSet;
rhsCharacterSet = (that.isSetCharacterSet()?that.getCharacterSet():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "characterSet", lhsCharacterSet), LocatorUtils.property(thatLocator, "characterSet", rhsCharacterSet), lhsCharacterSet, rhsCharacterSet, this.isSetCharacterSet(), that.isSetCharacterSet())) {
return false;
}
}
{
List<MDTopicCategoryCodePropertyType> lhsTopicCategory;
lhsTopicCategory = (this.isSetTopicCategory()?this.getTopicCategory():null);
List<MDTopicCategoryCodePropertyType> rhsTopicCategory;
rhsTopicCategory = (that.isSetTopicCategory()?that.getTopicCategory():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "topicCategory", lhsTopicCategory), LocatorUtils.property(thatLocator, "topicCategory", rhsTopicCategory), lhsTopicCategory, rhsTopicCategory, this.isSetTopicCategory(), that.isSetTopicCategory())) {
return false;
}
}
{
CharacterStringPropertyType lhsEnvironmentDescription;
lhsEnvironmentDescription = this.getEnvironmentDescription();
CharacterStringPropertyType rhsEnvironmentDescription;
rhsEnvironmentDescription = that.getEnvironmentDescription();
if (!strategy.equals(LocatorUtils.property(thisLocator, "environmentDescription", lhsEnvironmentDescription), LocatorUtils.property(thatLocator, "environmentDescription", rhsEnvironmentDescription), lhsEnvironmentDescription, rhsEnvironmentDescription, this.isSetEnvironmentDescription(), that.isSetEnvironmentDescription())) {
return false;
}
}
{
List<EXExtentPropertyType> lhsExtent;
lhsExtent = (this.isSetExtent()?this.getExtent():null);
List<EXExtentPropertyType> rhsExtent;
rhsExtent = (that.isSetExtent()?that.getExtent():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "extent", lhsExtent), LocatorUtils.property(thatLocator, "extent", rhsExtent), lhsExtent, rhsExtent, this.isSetExtent(), that.isSetExtent())) {
return false;
}
}
{
CharacterStringPropertyType lhsSupplementalInformation;
lhsSupplementalInformation = this.getSupplementalInformation();
CharacterStringPropertyType rhsSupplementalInformation;
rhsSupplementalInformation = that.getSupplementalInformation();
if (!strategy.equals(LocatorUtils.property(thisLocator, "supplementalInformation", lhsSupplementalInformation), LocatorUtils.property(thatLocator, "supplementalInformation", rhsSupplementalInformation), lhsSupplementalInformation, rhsSupplementalInformation, this.isSetSupplementalInformation(), that.isSetSupplementalInformation())) {
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);
{
List<MDSpatialRepresentationTypeCodePropertyType> theSpatialRepresentationType;
theSpatialRepresentationType = (this.isSetSpatialRepresentationType()?this.getSpatialRepresentationType():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "spatialRepresentationType", theSpatialRepresentationType), currentHashCode, theSpatialRepresentationType, this.isSetSpatialRepresentationType());
}
{
List<MDResolutionPropertyType> theSpatialResolution;
theSpatialResolution = (this.isSetSpatialResolution()?this.getSpatialResolution():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "spatialResolution", theSpatialResolution), currentHashCode, theSpatialResolution, this.isSetSpatialResolution());
}
{
List<CharacterStringPropertyType> theLanguage;
theLanguage = (this.isSetLanguage()?this.getLanguage():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "language", theLanguage), currentHashCode, theLanguage, this.isSetLanguage());
}
{
List<MDCharacterSetCodePropertyType> theCharacterSet;
theCharacterSet = (this.isSetCharacterSet()?this.getCharacterSet():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "characterSet", theCharacterSet), currentHashCode, theCharacterSet, this.isSetCharacterSet());
}
{
List<MDTopicCategoryCodePropertyType> theTopicCategory;
theTopicCategory = (this.isSetTopicCategory()?this.getTopicCategory():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "topicCategory", theTopicCategory), currentHashCode, theTopicCategory, this.isSetTopicCategory());
}
{
CharacterStringPropertyType theEnvironmentDescription;
theEnvironmentDescription = this.getEnvironmentDescription();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "environmentDescription", theEnvironmentDescription), currentHashCode, theEnvironmentDescription, this.isSetEnvironmentDescription());
}
{
List<EXExtentPropertyType> theExtent;
theExtent = (this.isSetExtent()?this.getExtent():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "extent", theExtent), currentHashCode, theExtent, this.isSetExtent());
}
{
CharacterStringPropertyType theSupplementalInformation;
theSupplementalInformation = this.getSupplementalInformation();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "supplementalInformation", theSupplementalInformation), currentHashCode, theSupplementalInformation, this.isSetSupplementalInformation());
}
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 MDDataIdentificationType) {
final MDDataIdentificationType copy = ((MDDataIdentificationType) draftCopy);
{
Boolean spatialRepresentationTypeShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetSpatialRepresentationType());
if (spatialRepresentationTypeShouldBeCopiedAndSet == Boolean.TRUE) {
List<MDSpatialRepresentationTypeCodePropertyType> sourceSpatialRepresentationType;
sourceSpatialRepresentationType = (this.isSetSpatialRepresentationType()?this.getSpatialRepresentationType():null);
@SuppressWarnings("unchecked")
List<MDSpatialRepresentationTypeCodePropertyType> copySpatialRepresentationType = ((List<MDSpatialRepresentationTypeCodePropertyType> ) strategy.copy(LocatorUtils.property(locator, "spatialRepresentationType", sourceSpatialRepresentationType), sourceSpatialRepresentationType, this.isSetSpatialRepresentationType()));
copy.unsetSpatialRepresentationType();
if (copySpatialRepresentationType!= null) {
List<MDSpatialRepresentationTypeCodePropertyType> uniqueSpatialRepresentationTypel = copy.getSpatialRepresentationType();
uniqueSpatialRepresentationTypel.addAll(copySpatialRepresentationType);
}
} else {
if (spatialRepresentationTypeShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetSpatialRepresentationType();
}
}
}
{
Boolean spatialResolutionShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetSpatialResolution());
if (spatialResolutionShouldBeCopiedAndSet == Boolean.TRUE) {
List<MDResolutionPropertyType> sourceSpatialResolution;
sourceSpatialResolution = (this.isSetSpatialResolution()?this.getSpatialResolution():null);
@SuppressWarnings("unchecked")
List<MDResolutionPropertyType> copySpatialResolution = ((List<MDResolutionPropertyType> ) strategy.copy(LocatorUtils.property(locator, "spatialResolution", sourceSpatialResolution), sourceSpatialResolution, this.isSetSpatialResolution()));
copy.unsetSpatialResolution();
if (copySpatialResolution!= null) {
List<MDResolutionPropertyType> uniqueSpatialResolutionl = copy.getSpatialResolution();
uniqueSpatialResolutionl.addAll(copySpatialResolution);
}
} else {
if (spatialResolutionShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetSpatialResolution();
}
}
}
{
Boolean languageShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetLanguage());
if (languageShouldBeCopiedAndSet == Boolean.TRUE) {
List<CharacterStringPropertyType> sourceLanguage;
sourceLanguage = (this.isSetLanguage()?this.getLanguage():null);
@SuppressWarnings("unchecked")
List<CharacterStringPropertyType> copyLanguage = ((List<CharacterStringPropertyType> ) strategy.copy(LocatorUtils.property(locator, "language", sourceLanguage), sourceLanguage, this.isSetLanguage()));
copy.unsetLanguage();
if (copyLanguage!= null) {
List<CharacterStringPropertyType> uniqueLanguagel = copy.getLanguage();
uniqueLanguagel.addAll(copyLanguage);
}
} else {
if (languageShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetLanguage();
}
}
}
{
Boolean characterSetShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetCharacterSet());
if (characterSetShouldBeCopiedAndSet == Boolean.TRUE) {
List<MDCharacterSetCodePropertyType> sourceCharacterSet;
sourceCharacterSet = (this.isSetCharacterSet()?this.getCharacterSet():null);
@SuppressWarnings("unchecked")
List<MDCharacterSetCodePropertyType> copyCharacterSet = ((List<MDCharacterSetCodePropertyType> ) strategy.copy(LocatorUtils.property(locator, "characterSet", sourceCharacterSet), sourceCharacterSet, this.isSetCharacterSet()));
copy.unsetCharacterSet();
if (copyCharacterSet!= null) {
List<MDCharacterSetCodePropertyType> uniqueCharacterSetl = copy.getCharacterSet();
uniqueCharacterSetl.addAll(copyCharacterSet);
}
} else {
if (characterSetShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetCharacterSet();
}
}
}
{
Boolean topicCategoryShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetTopicCategory());
if (topicCategoryShouldBeCopiedAndSet == Boolean.TRUE) {
List<MDTopicCategoryCodePropertyType> sourceTopicCategory;
sourceTopicCategory = (this.isSetTopicCategory()?this.getTopicCategory():null);
@SuppressWarnings("unchecked")
List<MDTopicCategoryCodePropertyType> copyTopicCategory = ((List<MDTopicCategoryCodePropertyType> ) strategy.copy(LocatorUtils.property(locator, "topicCategory", sourceTopicCategory), sourceTopicCategory, this.isSetTopicCategory()));
copy.unsetTopicCategory();
if (copyTopicCategory!= null) {
List<MDTopicCategoryCodePropertyType> uniqueTopicCategoryl = copy.getTopicCategory();
uniqueTopicCategoryl.addAll(copyTopicCategory);
}
} else {
if (topicCategoryShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetTopicCategory();
}
}
}
{
Boolean environmentDescriptionShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetEnvironmentDescription());
if (environmentDescriptionShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceEnvironmentDescription;
sourceEnvironmentDescription = this.getEnvironmentDescription();
CharacterStringPropertyType copyEnvironmentDescription = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "environmentDescription", sourceEnvironmentDescription), sourceEnvironmentDescription, this.isSetEnvironmentDescription()));
copy.setEnvironmentDescription(copyEnvironmentDescription);
} else {
if (environmentDescriptionShouldBeCopiedAndSet == Boolean.FALSE) {
copy.environmentDescription = null;
}
}
}
{
Boolean extentShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetExtent());
if (extentShouldBeCopiedAndSet == Boolean.TRUE) {
List<EXExtentPropertyType> sourceExtent;
sourceExtent = (this.isSetExtent()?this.getExtent():null);
@SuppressWarnings("unchecked")
List<EXExtentPropertyType> copyExtent = ((List<EXExtentPropertyType> ) strategy.copy(LocatorUtils.property(locator, "extent", sourceExtent), sourceExtent, this.isSetExtent()));
copy.unsetExtent();
if (copyExtent!= null) {
List<EXExtentPropertyType> uniqueExtentl = copy.getExtent();
uniqueExtentl.addAll(copyExtent);
}
} else {
if (extentShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetExtent();
}
}
}
{
Boolean supplementalInformationShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetSupplementalInformation());
if (supplementalInformationShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceSupplementalInformation;
sourceSupplementalInformation = this.getSupplementalInformation();
CharacterStringPropertyType copySupplementalInformation = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "supplementalInformation", sourceSupplementalInformation), sourceSupplementalInformation, this.isSetSupplementalInformation()));
copy.setSupplementalInformation(copySupplementalInformation);
} else {
if (supplementalInformationShouldBeCopiedAndSet == Boolean.FALSE) {
copy.supplementalInformation = null;
}
}
}
}
return draftCopy;
}
public Object createNewInstance() {
return new MDDataIdentificationType();
}
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 MDDataIdentificationType) {
final MDDataIdentificationType target = this;
final MDDataIdentificationType leftObject = ((MDDataIdentificationType) left);
final MDDataIdentificationType rightObject = ((MDDataIdentificationType) right);
{
Boolean spatialRepresentationTypeShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetSpatialRepresentationType(), rightObject.isSetSpatialRepresentationType());
if (spatialRepresentationTypeShouldBeMergedAndSet == Boolean.TRUE) {
List<MDSpatialRepresentationTypeCodePropertyType> lhsSpatialRepresentationType;
lhsSpatialRepresentationType = (leftObject.isSetSpatialRepresentationType()?leftObject.getSpatialRepresentationType():null);
List<MDSpatialRepresentationTypeCodePropertyType> rhsSpatialRepresentationType;
rhsSpatialRepresentationType = (rightObject.isSetSpatialRepresentationType()?rightObject.getSpatialRepresentationType():null);
List<MDSpatialRepresentationTypeCodePropertyType> mergedSpatialRepresentationType = ((List<MDSpatialRepresentationTypeCodePropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "spatialRepresentationType", lhsSpatialRepresentationType), LocatorUtils.property(rightLocator, "spatialRepresentationType", rhsSpatialRepresentationType), lhsSpatialRepresentationType, rhsSpatialRepresentationType, leftObject.isSetSpatialRepresentationType(), rightObject.isSetSpatialRepresentationType()));
target.unsetSpatialRepresentationType();
if (mergedSpatialRepresentationType!= null) {
List<MDSpatialRepresentationTypeCodePropertyType> uniqueSpatialRepresentationTypel = target.getSpatialRepresentationType();
uniqueSpatialRepresentationTypel.addAll(mergedSpatialRepresentationType);
}
} else {
if (spatialRepresentationTypeShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetSpatialRepresentationType();
}
}
}
{
Boolean spatialResolutionShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetSpatialResolution(), rightObject.isSetSpatialResolution());
if (spatialResolutionShouldBeMergedAndSet == Boolean.TRUE) {
List<MDResolutionPropertyType> lhsSpatialResolution;
lhsSpatialResolution = (leftObject.isSetSpatialResolution()?leftObject.getSpatialResolution():null);
List<MDResolutionPropertyType> rhsSpatialResolution;
rhsSpatialResolution = (rightObject.isSetSpatialResolution()?rightObject.getSpatialResolution():null);
List<MDResolutionPropertyType> mergedSpatialResolution = ((List<MDResolutionPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "spatialResolution", lhsSpatialResolution), LocatorUtils.property(rightLocator, "spatialResolution", rhsSpatialResolution), lhsSpatialResolution, rhsSpatialResolution, leftObject.isSetSpatialResolution(), rightObject.isSetSpatialResolution()));
target.unsetSpatialResolution();
if (mergedSpatialResolution!= null) {
List<MDResolutionPropertyType> uniqueSpatialResolutionl = target.getSpatialResolution();
uniqueSpatialResolutionl.addAll(mergedSpatialResolution);
}
} else {
if (spatialResolutionShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetSpatialResolution();
}
}
}
{
Boolean languageShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetLanguage(), rightObject.isSetLanguage());
if (languageShouldBeMergedAndSet == Boolean.TRUE) {
List<CharacterStringPropertyType> lhsLanguage;
lhsLanguage = (leftObject.isSetLanguage()?leftObject.getLanguage():null);
List<CharacterStringPropertyType> rhsLanguage;
rhsLanguage = (rightObject.isSetLanguage()?rightObject.getLanguage():null);
List<CharacterStringPropertyType> mergedLanguage = ((List<CharacterStringPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "language", lhsLanguage), LocatorUtils.property(rightLocator, "language", rhsLanguage), lhsLanguage, rhsLanguage, leftObject.isSetLanguage(), rightObject.isSetLanguage()));
target.unsetLanguage();
if (mergedLanguage!= null) {
List<CharacterStringPropertyType> uniqueLanguagel = target.getLanguage();
uniqueLanguagel.addAll(mergedLanguage);
}
} else {
if (languageShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetLanguage();
}
}
}
{
Boolean characterSetShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetCharacterSet(), rightObject.isSetCharacterSet());
if (characterSetShouldBeMergedAndSet == Boolean.TRUE) {
List<MDCharacterSetCodePropertyType> lhsCharacterSet;
lhsCharacterSet = (leftObject.isSetCharacterSet()?leftObject.getCharacterSet():null);
List<MDCharacterSetCodePropertyType> rhsCharacterSet;
rhsCharacterSet = (rightObject.isSetCharacterSet()?rightObject.getCharacterSet():null);
List<MDCharacterSetCodePropertyType> mergedCharacterSet = ((List<MDCharacterSetCodePropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "characterSet", lhsCharacterSet), LocatorUtils.property(rightLocator, "characterSet", rhsCharacterSet), lhsCharacterSet, rhsCharacterSet, leftObject.isSetCharacterSet(), rightObject.isSetCharacterSet()));
target.unsetCharacterSet();
if (mergedCharacterSet!= null) {
List<MDCharacterSetCodePropertyType> uniqueCharacterSetl = target.getCharacterSet();
uniqueCharacterSetl.addAll(mergedCharacterSet);
}
} else {
if (characterSetShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetCharacterSet();
}
}
}
{
Boolean topicCategoryShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetTopicCategory(), rightObject.isSetTopicCategory());
if (topicCategoryShouldBeMergedAndSet == Boolean.TRUE) {
List<MDTopicCategoryCodePropertyType> lhsTopicCategory;
lhsTopicCategory = (leftObject.isSetTopicCategory()?leftObject.getTopicCategory():null);
List<MDTopicCategoryCodePropertyType> rhsTopicCategory;
rhsTopicCategory = (rightObject.isSetTopicCategory()?rightObject.getTopicCategory():null);
List<MDTopicCategoryCodePropertyType> mergedTopicCategory = ((List<MDTopicCategoryCodePropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "topicCategory", lhsTopicCategory), LocatorUtils.property(rightLocator, "topicCategory", rhsTopicCategory), lhsTopicCategory, rhsTopicCategory, leftObject.isSetTopicCategory(), rightObject.isSetTopicCategory()));
target.unsetTopicCategory();
if (mergedTopicCategory!= null) {
List<MDTopicCategoryCodePropertyType> uniqueTopicCategoryl = target.getTopicCategory();
uniqueTopicCategoryl.addAll(mergedTopicCategory);
}
} else {
if (topicCategoryShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetTopicCategory();
}
}
}
{
Boolean environmentDescriptionShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetEnvironmentDescription(), rightObject.isSetEnvironmentDescription());
if (environmentDescriptionShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsEnvironmentDescription;
lhsEnvironmentDescription = leftObject.getEnvironmentDescription();
CharacterStringPropertyType rhsEnvironmentDescription;
rhsEnvironmentDescription = rightObject.getEnvironmentDescription();
CharacterStringPropertyType mergedEnvironmentDescription = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "environmentDescription", lhsEnvironmentDescription), LocatorUtils.property(rightLocator, "environmentDescription", rhsEnvironmentDescription), lhsEnvironmentDescription, rhsEnvironmentDescription, leftObject.isSetEnvironmentDescription(), rightObject.isSetEnvironmentDescription()));
target.setEnvironmentDescription(mergedEnvironmentDescription);
} else {
if (environmentDescriptionShouldBeMergedAndSet == Boolean.FALSE) {
target.environmentDescription = null;
}
}
}
{
Boolean extentShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetExtent(), rightObject.isSetExtent());
if (extentShouldBeMergedAndSet == Boolean.TRUE) {
List<EXExtentPropertyType> lhsExtent;
lhsExtent = (leftObject.isSetExtent()?leftObject.getExtent():null);
List<EXExtentPropertyType> rhsExtent;
rhsExtent = (rightObject.isSetExtent()?rightObject.getExtent():null);
List<EXExtentPropertyType> mergedExtent = ((List<EXExtentPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "extent", lhsExtent), LocatorUtils.property(rightLocator, "extent", rhsExtent), lhsExtent, rhsExtent, leftObject.isSetExtent(), rightObject.isSetExtent()));
target.unsetExtent();
if (mergedExtent!= null) {
List<EXExtentPropertyType> uniqueExtentl = target.getExtent();
uniqueExtentl.addAll(mergedExtent);
}
} else {
if (extentShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetExtent();
}
}
}
{
Boolean supplementalInformationShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetSupplementalInformation(), rightObject.isSetSupplementalInformation());
if (supplementalInformationShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsSupplementalInformation;
lhsSupplementalInformation = leftObject.getSupplementalInformation();
CharacterStringPropertyType rhsSupplementalInformation;
rhsSupplementalInformation = rightObject.getSupplementalInformation();
CharacterStringPropertyType mergedSupplementalInformation = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "supplementalInformation", lhsSupplementalInformation), LocatorUtils.property(rightLocator, "supplementalInformation", rhsSupplementalInformation), lhsSupplementalInformation, rhsSupplementalInformation, leftObject.isSetSupplementalInformation(), rightObject.isSetSupplementalInformation()));
target.setSupplementalInformation(mergedSupplementalInformation);
} else {
if (supplementalInformationShouldBeMergedAndSet == Boolean.FALSE) {
target.supplementalInformation = null;
}
}
}
}
}
public void setSpatialRepresentationType(List<MDSpatialRepresentationTypeCodePropertyType> value) {
this.spatialRepresentationType = null;
if (value!= null) {
List<MDSpatialRepresentationTypeCodePropertyType> draftl = this.getSpatialRepresentationType();
draftl.addAll(value);
}
}
public void setSpatialResolution(List<MDResolutionPropertyType> value) {
this.spatialResolution = null;
if (value!= null) {
List<MDResolutionPropertyType> draftl = this.getSpatialResolution();
draftl.addAll(value);
}
}
public void setLanguage(List<CharacterStringPropertyType> value) {
this.language = null;
if (value!= null) {
List<CharacterStringPropertyType> draftl = this.getLanguage();
draftl.addAll(value);
}
}
public void setCharacterSet(List<MDCharacterSetCodePropertyType> value) {
this.characterSet = null;
if (value!= null) {
List<MDCharacterSetCodePropertyType> draftl = this.getCharacterSet();
draftl.addAll(value);
}
}
public void setTopicCategory(List<MDTopicCategoryCodePropertyType> value) {
this.topicCategory = null;
if (value!= null) {
List<MDTopicCategoryCodePropertyType> draftl = this.getTopicCategory();
draftl.addAll(value);
}
}
public void setExtent(List<EXExtentPropertyType> value) {
this.extent = null;
if (value!= null) {
List<EXExtentPropertyType> draftl = this.getExtent();
draftl.addAll(value);
}
}
}