//
// 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._19112;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
import javax.xml.datatype.XMLGregorianCalendar;
import mil.ces.metadata.mdr.ns.gsip.tspi._2_0.ext.GEOLOCInstanceType;
import net.opengis.gml.v_3_2_1.AbstractFeatureType;
import net.opengis.gml.v_3_2_1.GeometryPropertyType;
import net.opengis.gml.v_3_2_1.PointPropertyType;
import net.opengis.gml.v_3_2_1.ReferenceType;
import org.isotc211._2005.gmd.CIResponsiblePartyPropertyType;
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;
/**
* A location instance in a spatial reference system.
*
* <p>Java class for SI_LocationInstanceType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="SI_LocationInstanceType">
* <complexContent>
* <extension base="{http://www.opengis.net/gml/3.2}AbstractFeatureType">
* <sequence>
* <element name="geographicIdentifier" type="{http://www.isotc211.org/19112}LanguageStringType"/>
* <element name="alternativeGeographicIdentifiers" type="{http://www.isotc211.org/19112}AlternativeGeographicIdentifiersPropertyType" minOccurs="0"/>
* <element name="position" type="{http://www.opengis.net/gml/3.2}PointPropertyType"/>
* <element name="geographicExtent" type="{http://www.opengis.net/gml/3.2}GeometryPropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="dateOfCreation" type="{http://www.w3.org/2001/XMLSchema}date" minOccurs="0"/>
* <element name="administrator" type="{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty_PropertyType"/>
* <element name="spatialObject" type="{http://www.w3.org/2001/XMLSchema}anyURI" minOccurs="0"/>
* <element name="parent" type="{http://www.opengis.net/gml/3.2}ReferenceType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="child" type="{http://www.opengis.net/gml/3.2}ReferenceType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="locationType" type="{http://www.opengis.net/gml/3.2}ReferenceType"/>
* </sequence>
* </extension>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SI_LocationInstanceType", propOrder = {
"geographicIdentifier",
"alternativeGeographicIdentifiers",
"position",
"geographicExtent",
"dateOfCreation",
"administrator",
"spatialObject",
"parent",
"child",
"locationType"
})
@XmlSeeAlso({
GEOLOCInstanceType.class
})
public class SILocationInstanceType
extends AbstractFeatureType
implements Serializable, Cloneable, CopyTo2, Equals2, HashCode2, MergeFrom2, ToString2
{
private final static long serialVersionUID = 1L;
@XmlElement(required = true)
@NotNull(message = "SILocationInstanceType.geographicIdentifier {javax.validation.constraints.NotNull.message}")
@Valid
protected LanguageStringType geographicIdentifier;
@Valid
protected AlternativeGeographicIdentifiersPropertyType alternativeGeographicIdentifiers;
@XmlElement(required = true)
@NotNull(message = "SILocationInstanceType.position {javax.validation.constraints.NotNull.message}")
@Valid
protected PointPropertyType position;
@Valid
protected List<GeometryPropertyType> geographicExtent;
@XmlSchemaType(name = "date")
protected XMLGregorianCalendar dateOfCreation;
@XmlElement(required = true)
@NotNull(message = "SILocationInstanceType.administrator {javax.validation.constraints.NotNull.message}")
@Valid
protected CIResponsiblePartyPropertyType administrator;
@XmlSchemaType(name = "anyURI")
protected String spatialObject;
@Valid
protected List<ReferenceType> parent;
@Valid
protected List<ReferenceType> child;
@XmlElement(required = true)
@NotNull(message = "SILocationInstanceType.locationType {javax.validation.constraints.NotNull.message}")
@Valid
protected ReferenceType locationType;
/**
* Gets the value of the geographicIdentifier property.
*
* @return
* possible object is
* {@link LanguageStringType }
*
*/
public LanguageStringType getGeographicIdentifier() {
return geographicIdentifier;
}
/**
* Sets the value of the geographicIdentifier property.
*
* @param value
* allowed object is
* {@link LanguageStringType }
*
*/
public void setGeographicIdentifier(LanguageStringType value) {
this.geographicIdentifier = value;
}
public boolean isSetGeographicIdentifier() {
return (this.geographicIdentifier!= null);
}
/**
* Gets the value of the alternativeGeographicIdentifiers property.
*
* @return
* possible object is
* {@link AlternativeGeographicIdentifiersPropertyType }
*
*/
public AlternativeGeographicIdentifiersPropertyType getAlternativeGeographicIdentifiers() {
return alternativeGeographicIdentifiers;
}
/**
* Sets the value of the alternativeGeographicIdentifiers property.
*
* @param value
* allowed object is
* {@link AlternativeGeographicIdentifiersPropertyType }
*
*/
public void setAlternativeGeographicIdentifiers(AlternativeGeographicIdentifiersPropertyType value) {
this.alternativeGeographicIdentifiers = value;
}
public boolean isSetAlternativeGeographicIdentifiers() {
return (this.alternativeGeographicIdentifiers!= null);
}
/**
* Gets the value of the position property.
*
* @return
* possible object is
* {@link PointPropertyType }
*
*/
public PointPropertyType getPosition() {
return position;
}
/**
* Sets the value of the position property.
*
* @param value
* allowed object is
* {@link PointPropertyType }
*
*/
public void setPosition(PointPropertyType value) {
this.position = value;
}
public boolean isSetPosition() {
return (this.position!= null);
}
/**
* Gets the value of the geographicExtent 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 geographicExtent property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getGeographicExtent().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link GeometryPropertyType }
*
*
*/
public List<GeometryPropertyType> getGeographicExtent() {
if (geographicExtent == null) {
geographicExtent = new ArrayList<GeometryPropertyType>();
}
return this.geographicExtent;
}
public boolean isSetGeographicExtent() {
return ((this.geographicExtent!= null)&&(!this.geographicExtent.isEmpty()));
}
public void unsetGeographicExtent() {
this.geographicExtent = null;
}
/**
* Gets the value of the dateOfCreation property.
*
* @return
* possible object is
* {@link XMLGregorianCalendar }
*
*/
public XMLGregorianCalendar getDateOfCreation() {
return dateOfCreation;
}
/**
* Sets the value of the dateOfCreation property.
*
* @param value
* allowed object is
* {@link XMLGregorianCalendar }
*
*/
public void setDateOfCreation(XMLGregorianCalendar value) {
this.dateOfCreation = value;
}
public boolean isSetDateOfCreation() {
return (this.dateOfCreation!= null);
}
/**
* Gets the value of the administrator property.
*
* @return
* possible object is
* {@link CIResponsiblePartyPropertyType }
*
*/
public CIResponsiblePartyPropertyType getAdministrator() {
return administrator;
}
/**
* Sets the value of the administrator property.
*
* @param value
* allowed object is
* {@link CIResponsiblePartyPropertyType }
*
*/
public void setAdministrator(CIResponsiblePartyPropertyType value) {
this.administrator = value;
}
public boolean isSetAdministrator() {
return (this.administrator!= null);
}
/**
* Gets the value of the spatialObject property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getSpatialObject() {
return spatialObject;
}
/**
* Sets the value of the spatialObject property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setSpatialObject(String value) {
this.spatialObject = value;
}
public boolean isSetSpatialObject() {
return (this.spatialObject!= null);
}
/**
* Gets the value of the parent 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 parent property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getParent().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ReferenceType }
*
*
*/
public List<ReferenceType> getParent() {
if (parent == null) {
parent = new ArrayList<ReferenceType>();
}
return this.parent;
}
public boolean isSetParent() {
return ((this.parent!= null)&&(!this.parent.isEmpty()));
}
public void unsetParent() {
this.parent = null;
}
/**
* Gets the value of the child 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 child property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getChild().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link ReferenceType }
*
*
*/
public List<ReferenceType> getChild() {
if (child == null) {
child = new ArrayList<ReferenceType>();
}
return this.child;
}
public boolean isSetChild() {
return ((this.child!= null)&&(!this.child.isEmpty()));
}
public void unsetChild() {
this.child = null;
}
/**
* Gets the value of the locationType property.
*
* @return
* possible object is
* {@link ReferenceType }
*
*/
public ReferenceType getLocationType() {
return locationType;
}
/**
* Sets the value of the locationType property.
*
* @param value
* allowed object is
* {@link ReferenceType }
*
*/
public void setLocationType(ReferenceType value) {
this.locationType = value;
}
public boolean isSetLocationType() {
return (this.locationType!= 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);
{
LanguageStringType theGeographicIdentifier;
theGeographicIdentifier = this.getGeographicIdentifier();
strategy.appendField(locator, this, "geographicIdentifier", buffer, theGeographicIdentifier, this.isSetGeographicIdentifier());
}
{
AlternativeGeographicIdentifiersPropertyType theAlternativeGeographicIdentifiers;
theAlternativeGeographicIdentifiers = this.getAlternativeGeographicIdentifiers();
strategy.appendField(locator, this, "alternativeGeographicIdentifiers", buffer, theAlternativeGeographicIdentifiers, this.isSetAlternativeGeographicIdentifiers());
}
{
PointPropertyType thePosition;
thePosition = this.getPosition();
strategy.appendField(locator, this, "position", buffer, thePosition, this.isSetPosition());
}
{
List<GeometryPropertyType> theGeographicExtent;
theGeographicExtent = (this.isSetGeographicExtent()?this.getGeographicExtent():null);
strategy.appendField(locator, this, "geographicExtent", buffer, theGeographicExtent, this.isSetGeographicExtent());
}
{
XMLGregorianCalendar theDateOfCreation;
theDateOfCreation = this.getDateOfCreation();
strategy.appendField(locator, this, "dateOfCreation", buffer, theDateOfCreation, this.isSetDateOfCreation());
}
{
CIResponsiblePartyPropertyType theAdministrator;
theAdministrator = this.getAdministrator();
strategy.appendField(locator, this, "administrator", buffer, theAdministrator, this.isSetAdministrator());
}
{
String theSpatialObject;
theSpatialObject = this.getSpatialObject();
strategy.appendField(locator, this, "spatialObject", buffer, theSpatialObject, this.isSetSpatialObject());
}
{
List<ReferenceType> theParent;
theParent = (this.isSetParent()?this.getParent():null);
strategy.appendField(locator, this, "parent", buffer, theParent, this.isSetParent());
}
{
List<ReferenceType> theChild;
theChild = (this.isSetChild()?this.getChild():null);
strategy.appendField(locator, this, "child", buffer, theChild, this.isSetChild());
}
{
ReferenceType theLocationType;
theLocationType = this.getLocationType();
strategy.appendField(locator, this, "locationType", buffer, theLocationType, this.isSetLocationType());
}
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 SILocationInstanceType that = ((SILocationInstanceType) object);
{
LanguageStringType lhsGeographicIdentifier;
lhsGeographicIdentifier = this.getGeographicIdentifier();
LanguageStringType rhsGeographicIdentifier;
rhsGeographicIdentifier = that.getGeographicIdentifier();
if (!strategy.equals(LocatorUtils.property(thisLocator, "geographicIdentifier", lhsGeographicIdentifier), LocatorUtils.property(thatLocator, "geographicIdentifier", rhsGeographicIdentifier), lhsGeographicIdentifier, rhsGeographicIdentifier, this.isSetGeographicIdentifier(), that.isSetGeographicIdentifier())) {
return false;
}
}
{
AlternativeGeographicIdentifiersPropertyType lhsAlternativeGeographicIdentifiers;
lhsAlternativeGeographicIdentifiers = this.getAlternativeGeographicIdentifiers();
AlternativeGeographicIdentifiersPropertyType rhsAlternativeGeographicIdentifiers;
rhsAlternativeGeographicIdentifiers = that.getAlternativeGeographicIdentifiers();
if (!strategy.equals(LocatorUtils.property(thisLocator, "alternativeGeographicIdentifiers", lhsAlternativeGeographicIdentifiers), LocatorUtils.property(thatLocator, "alternativeGeographicIdentifiers", rhsAlternativeGeographicIdentifiers), lhsAlternativeGeographicIdentifiers, rhsAlternativeGeographicIdentifiers, this.isSetAlternativeGeographicIdentifiers(), that.isSetAlternativeGeographicIdentifiers())) {
return false;
}
}
{
PointPropertyType lhsPosition;
lhsPosition = this.getPosition();
PointPropertyType rhsPosition;
rhsPosition = that.getPosition();
if (!strategy.equals(LocatorUtils.property(thisLocator, "position", lhsPosition), LocatorUtils.property(thatLocator, "position", rhsPosition), lhsPosition, rhsPosition, this.isSetPosition(), that.isSetPosition())) {
return false;
}
}
{
List<GeometryPropertyType> lhsGeographicExtent;
lhsGeographicExtent = (this.isSetGeographicExtent()?this.getGeographicExtent():null);
List<GeometryPropertyType> rhsGeographicExtent;
rhsGeographicExtent = (that.isSetGeographicExtent()?that.getGeographicExtent():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "geographicExtent", lhsGeographicExtent), LocatorUtils.property(thatLocator, "geographicExtent", rhsGeographicExtent), lhsGeographicExtent, rhsGeographicExtent, this.isSetGeographicExtent(), that.isSetGeographicExtent())) {
return false;
}
}
{
XMLGregorianCalendar lhsDateOfCreation;
lhsDateOfCreation = this.getDateOfCreation();
XMLGregorianCalendar rhsDateOfCreation;
rhsDateOfCreation = that.getDateOfCreation();
if (!strategy.equals(LocatorUtils.property(thisLocator, "dateOfCreation", lhsDateOfCreation), LocatorUtils.property(thatLocator, "dateOfCreation", rhsDateOfCreation), lhsDateOfCreation, rhsDateOfCreation, this.isSetDateOfCreation(), that.isSetDateOfCreation())) {
return false;
}
}
{
CIResponsiblePartyPropertyType lhsAdministrator;
lhsAdministrator = this.getAdministrator();
CIResponsiblePartyPropertyType rhsAdministrator;
rhsAdministrator = that.getAdministrator();
if (!strategy.equals(LocatorUtils.property(thisLocator, "administrator", lhsAdministrator), LocatorUtils.property(thatLocator, "administrator", rhsAdministrator), lhsAdministrator, rhsAdministrator, this.isSetAdministrator(), that.isSetAdministrator())) {
return false;
}
}
{
String lhsSpatialObject;
lhsSpatialObject = this.getSpatialObject();
String rhsSpatialObject;
rhsSpatialObject = that.getSpatialObject();
if (!strategy.equals(LocatorUtils.property(thisLocator, "spatialObject", lhsSpatialObject), LocatorUtils.property(thatLocator, "spatialObject", rhsSpatialObject), lhsSpatialObject, rhsSpatialObject, this.isSetSpatialObject(), that.isSetSpatialObject())) {
return false;
}
}
{
List<ReferenceType> lhsParent;
lhsParent = (this.isSetParent()?this.getParent():null);
List<ReferenceType> rhsParent;
rhsParent = (that.isSetParent()?that.getParent():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "parent", lhsParent), LocatorUtils.property(thatLocator, "parent", rhsParent), lhsParent, rhsParent, this.isSetParent(), that.isSetParent())) {
return false;
}
}
{
List<ReferenceType> lhsChild;
lhsChild = (this.isSetChild()?this.getChild():null);
List<ReferenceType> rhsChild;
rhsChild = (that.isSetChild()?that.getChild():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "child", lhsChild), LocatorUtils.property(thatLocator, "child", rhsChild), lhsChild, rhsChild, this.isSetChild(), that.isSetChild())) {
return false;
}
}
{
ReferenceType lhsLocationType;
lhsLocationType = this.getLocationType();
ReferenceType rhsLocationType;
rhsLocationType = that.getLocationType();
if (!strategy.equals(LocatorUtils.property(thisLocator, "locationType", lhsLocationType), LocatorUtils.property(thatLocator, "locationType", rhsLocationType), lhsLocationType, rhsLocationType, this.isSetLocationType(), that.isSetLocationType())) {
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);
{
LanguageStringType theGeographicIdentifier;
theGeographicIdentifier = this.getGeographicIdentifier();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "geographicIdentifier", theGeographicIdentifier), currentHashCode, theGeographicIdentifier, this.isSetGeographicIdentifier());
}
{
AlternativeGeographicIdentifiersPropertyType theAlternativeGeographicIdentifiers;
theAlternativeGeographicIdentifiers = this.getAlternativeGeographicIdentifiers();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "alternativeGeographicIdentifiers", theAlternativeGeographicIdentifiers), currentHashCode, theAlternativeGeographicIdentifiers, this.isSetAlternativeGeographicIdentifiers());
}
{
PointPropertyType thePosition;
thePosition = this.getPosition();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "position", thePosition), currentHashCode, thePosition, this.isSetPosition());
}
{
List<GeometryPropertyType> theGeographicExtent;
theGeographicExtent = (this.isSetGeographicExtent()?this.getGeographicExtent():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "geographicExtent", theGeographicExtent), currentHashCode, theGeographicExtent, this.isSetGeographicExtent());
}
{
XMLGregorianCalendar theDateOfCreation;
theDateOfCreation = this.getDateOfCreation();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "dateOfCreation", theDateOfCreation), currentHashCode, theDateOfCreation, this.isSetDateOfCreation());
}
{
CIResponsiblePartyPropertyType theAdministrator;
theAdministrator = this.getAdministrator();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "administrator", theAdministrator), currentHashCode, theAdministrator, this.isSetAdministrator());
}
{
String theSpatialObject;
theSpatialObject = this.getSpatialObject();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "spatialObject", theSpatialObject), currentHashCode, theSpatialObject, this.isSetSpatialObject());
}
{
List<ReferenceType> theParent;
theParent = (this.isSetParent()?this.getParent():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "parent", theParent), currentHashCode, theParent, this.isSetParent());
}
{
List<ReferenceType> theChild;
theChild = (this.isSetChild()?this.getChild():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "child", theChild), currentHashCode, theChild, this.isSetChild());
}
{
ReferenceType theLocationType;
theLocationType = this.getLocationType();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "locationType", theLocationType), currentHashCode, theLocationType, this.isSetLocationType());
}
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 SILocationInstanceType) {
final SILocationInstanceType copy = ((SILocationInstanceType) draftCopy);
{
Boolean geographicIdentifierShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetGeographicIdentifier());
if (geographicIdentifierShouldBeCopiedAndSet == Boolean.TRUE) {
LanguageStringType sourceGeographicIdentifier;
sourceGeographicIdentifier = this.getGeographicIdentifier();
LanguageStringType copyGeographicIdentifier = ((LanguageStringType) strategy.copy(LocatorUtils.property(locator, "geographicIdentifier", sourceGeographicIdentifier), sourceGeographicIdentifier, this.isSetGeographicIdentifier()));
copy.setGeographicIdentifier(copyGeographicIdentifier);
} else {
if (geographicIdentifierShouldBeCopiedAndSet == Boolean.FALSE) {
copy.geographicIdentifier = null;
}
}
}
{
Boolean alternativeGeographicIdentifiersShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetAlternativeGeographicIdentifiers());
if (alternativeGeographicIdentifiersShouldBeCopiedAndSet == Boolean.TRUE) {
AlternativeGeographicIdentifiersPropertyType sourceAlternativeGeographicIdentifiers;
sourceAlternativeGeographicIdentifiers = this.getAlternativeGeographicIdentifiers();
AlternativeGeographicIdentifiersPropertyType copyAlternativeGeographicIdentifiers = ((AlternativeGeographicIdentifiersPropertyType) strategy.copy(LocatorUtils.property(locator, "alternativeGeographicIdentifiers", sourceAlternativeGeographicIdentifiers), sourceAlternativeGeographicIdentifiers, this.isSetAlternativeGeographicIdentifiers()));
copy.setAlternativeGeographicIdentifiers(copyAlternativeGeographicIdentifiers);
} else {
if (alternativeGeographicIdentifiersShouldBeCopiedAndSet == Boolean.FALSE) {
copy.alternativeGeographicIdentifiers = null;
}
}
}
{
Boolean positionShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetPosition());
if (positionShouldBeCopiedAndSet == Boolean.TRUE) {
PointPropertyType sourcePosition;
sourcePosition = this.getPosition();
PointPropertyType copyPosition = ((PointPropertyType) strategy.copy(LocatorUtils.property(locator, "position", sourcePosition), sourcePosition, this.isSetPosition()));
copy.setPosition(copyPosition);
} else {
if (positionShouldBeCopiedAndSet == Boolean.FALSE) {
copy.position = null;
}
}
}
{
Boolean geographicExtentShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetGeographicExtent());
if (geographicExtentShouldBeCopiedAndSet == Boolean.TRUE) {
List<GeometryPropertyType> sourceGeographicExtent;
sourceGeographicExtent = (this.isSetGeographicExtent()?this.getGeographicExtent():null);
@SuppressWarnings("unchecked")
List<GeometryPropertyType> copyGeographicExtent = ((List<GeometryPropertyType> ) strategy.copy(LocatorUtils.property(locator, "geographicExtent", sourceGeographicExtent), sourceGeographicExtent, this.isSetGeographicExtent()));
copy.unsetGeographicExtent();
if (copyGeographicExtent!= null) {
List<GeometryPropertyType> uniqueGeographicExtentl = copy.getGeographicExtent();
uniqueGeographicExtentl.addAll(copyGeographicExtent);
}
} else {
if (geographicExtentShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetGeographicExtent();
}
}
}
{
Boolean dateOfCreationShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetDateOfCreation());
if (dateOfCreationShouldBeCopiedAndSet == Boolean.TRUE) {
XMLGregorianCalendar sourceDateOfCreation;
sourceDateOfCreation = this.getDateOfCreation();
XMLGregorianCalendar copyDateOfCreation = ((XMLGregorianCalendar) strategy.copy(LocatorUtils.property(locator, "dateOfCreation", sourceDateOfCreation), sourceDateOfCreation, this.isSetDateOfCreation()));
copy.setDateOfCreation(copyDateOfCreation);
} else {
if (dateOfCreationShouldBeCopiedAndSet == Boolean.FALSE) {
copy.dateOfCreation = null;
}
}
}
{
Boolean administratorShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetAdministrator());
if (administratorShouldBeCopiedAndSet == Boolean.TRUE) {
CIResponsiblePartyPropertyType sourceAdministrator;
sourceAdministrator = this.getAdministrator();
CIResponsiblePartyPropertyType copyAdministrator = ((CIResponsiblePartyPropertyType) strategy.copy(LocatorUtils.property(locator, "administrator", sourceAdministrator), sourceAdministrator, this.isSetAdministrator()));
copy.setAdministrator(copyAdministrator);
} else {
if (administratorShouldBeCopiedAndSet == Boolean.FALSE) {
copy.administrator = null;
}
}
}
{
Boolean spatialObjectShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetSpatialObject());
if (spatialObjectShouldBeCopiedAndSet == Boolean.TRUE) {
String sourceSpatialObject;
sourceSpatialObject = this.getSpatialObject();
String copySpatialObject = ((String) strategy.copy(LocatorUtils.property(locator, "spatialObject", sourceSpatialObject), sourceSpatialObject, this.isSetSpatialObject()));
copy.setSpatialObject(copySpatialObject);
} else {
if (spatialObjectShouldBeCopiedAndSet == Boolean.FALSE) {
copy.spatialObject = null;
}
}
}
{
Boolean parentShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetParent());
if (parentShouldBeCopiedAndSet == Boolean.TRUE) {
List<ReferenceType> sourceParent;
sourceParent = (this.isSetParent()?this.getParent():null);
@SuppressWarnings("unchecked")
List<ReferenceType> copyParent = ((List<ReferenceType> ) strategy.copy(LocatorUtils.property(locator, "parent", sourceParent), sourceParent, this.isSetParent()));
copy.unsetParent();
if (copyParent!= null) {
List<ReferenceType> uniqueParentl = copy.getParent();
uniqueParentl.addAll(copyParent);
}
} else {
if (parentShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetParent();
}
}
}
{
Boolean childShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetChild());
if (childShouldBeCopiedAndSet == Boolean.TRUE) {
List<ReferenceType> sourceChild;
sourceChild = (this.isSetChild()?this.getChild():null);
@SuppressWarnings("unchecked")
List<ReferenceType> copyChild = ((List<ReferenceType> ) strategy.copy(LocatorUtils.property(locator, "child", sourceChild), sourceChild, this.isSetChild()));
copy.unsetChild();
if (copyChild!= null) {
List<ReferenceType> uniqueChildl = copy.getChild();
uniqueChildl.addAll(copyChild);
}
} else {
if (childShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetChild();
}
}
}
{
Boolean locationTypeShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetLocationType());
if (locationTypeShouldBeCopiedAndSet == Boolean.TRUE) {
ReferenceType sourceLocationType;
sourceLocationType = this.getLocationType();
ReferenceType copyLocationType = ((ReferenceType) strategy.copy(LocatorUtils.property(locator, "locationType", sourceLocationType), sourceLocationType, this.isSetLocationType()));
copy.setLocationType(copyLocationType);
} else {
if (locationTypeShouldBeCopiedAndSet == Boolean.FALSE) {
copy.locationType = null;
}
}
}
}
return draftCopy;
}
public Object createNewInstance() {
return new SILocationInstanceType();
}
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 SILocationInstanceType) {
final SILocationInstanceType target = this;
final SILocationInstanceType leftObject = ((SILocationInstanceType) left);
final SILocationInstanceType rightObject = ((SILocationInstanceType) right);
{
Boolean geographicIdentifierShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetGeographicIdentifier(), rightObject.isSetGeographicIdentifier());
if (geographicIdentifierShouldBeMergedAndSet == Boolean.TRUE) {
LanguageStringType lhsGeographicIdentifier;
lhsGeographicIdentifier = leftObject.getGeographicIdentifier();
LanguageStringType rhsGeographicIdentifier;
rhsGeographicIdentifier = rightObject.getGeographicIdentifier();
LanguageStringType mergedGeographicIdentifier = ((LanguageStringType) strategy.merge(LocatorUtils.property(leftLocator, "geographicIdentifier", lhsGeographicIdentifier), LocatorUtils.property(rightLocator, "geographicIdentifier", rhsGeographicIdentifier), lhsGeographicIdentifier, rhsGeographicIdentifier, leftObject.isSetGeographicIdentifier(), rightObject.isSetGeographicIdentifier()));
target.setGeographicIdentifier(mergedGeographicIdentifier);
} else {
if (geographicIdentifierShouldBeMergedAndSet == Boolean.FALSE) {
target.geographicIdentifier = null;
}
}
}
{
Boolean alternativeGeographicIdentifiersShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetAlternativeGeographicIdentifiers(), rightObject.isSetAlternativeGeographicIdentifiers());
if (alternativeGeographicIdentifiersShouldBeMergedAndSet == Boolean.TRUE) {
AlternativeGeographicIdentifiersPropertyType lhsAlternativeGeographicIdentifiers;
lhsAlternativeGeographicIdentifiers = leftObject.getAlternativeGeographicIdentifiers();
AlternativeGeographicIdentifiersPropertyType rhsAlternativeGeographicIdentifiers;
rhsAlternativeGeographicIdentifiers = rightObject.getAlternativeGeographicIdentifiers();
AlternativeGeographicIdentifiersPropertyType mergedAlternativeGeographicIdentifiers = ((AlternativeGeographicIdentifiersPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "alternativeGeographicIdentifiers", lhsAlternativeGeographicIdentifiers), LocatorUtils.property(rightLocator, "alternativeGeographicIdentifiers", rhsAlternativeGeographicIdentifiers), lhsAlternativeGeographicIdentifiers, rhsAlternativeGeographicIdentifiers, leftObject.isSetAlternativeGeographicIdentifiers(), rightObject.isSetAlternativeGeographicIdentifiers()));
target.setAlternativeGeographicIdentifiers(mergedAlternativeGeographicIdentifiers);
} else {
if (alternativeGeographicIdentifiersShouldBeMergedAndSet == Boolean.FALSE) {
target.alternativeGeographicIdentifiers = null;
}
}
}
{
Boolean positionShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetPosition(), rightObject.isSetPosition());
if (positionShouldBeMergedAndSet == Boolean.TRUE) {
PointPropertyType lhsPosition;
lhsPosition = leftObject.getPosition();
PointPropertyType rhsPosition;
rhsPosition = rightObject.getPosition();
PointPropertyType mergedPosition = ((PointPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "position", lhsPosition), LocatorUtils.property(rightLocator, "position", rhsPosition), lhsPosition, rhsPosition, leftObject.isSetPosition(), rightObject.isSetPosition()));
target.setPosition(mergedPosition);
} else {
if (positionShouldBeMergedAndSet == Boolean.FALSE) {
target.position = null;
}
}
}
{
Boolean geographicExtentShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetGeographicExtent(), rightObject.isSetGeographicExtent());
if (geographicExtentShouldBeMergedAndSet == Boolean.TRUE) {
List<GeometryPropertyType> lhsGeographicExtent;
lhsGeographicExtent = (leftObject.isSetGeographicExtent()?leftObject.getGeographicExtent():null);
List<GeometryPropertyType> rhsGeographicExtent;
rhsGeographicExtent = (rightObject.isSetGeographicExtent()?rightObject.getGeographicExtent():null);
List<GeometryPropertyType> mergedGeographicExtent = ((List<GeometryPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "geographicExtent", lhsGeographicExtent), LocatorUtils.property(rightLocator, "geographicExtent", rhsGeographicExtent), lhsGeographicExtent, rhsGeographicExtent, leftObject.isSetGeographicExtent(), rightObject.isSetGeographicExtent()));
target.unsetGeographicExtent();
if (mergedGeographicExtent!= null) {
List<GeometryPropertyType> uniqueGeographicExtentl = target.getGeographicExtent();
uniqueGeographicExtentl.addAll(mergedGeographicExtent);
}
} else {
if (geographicExtentShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetGeographicExtent();
}
}
}
{
Boolean dateOfCreationShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetDateOfCreation(), rightObject.isSetDateOfCreation());
if (dateOfCreationShouldBeMergedAndSet == Boolean.TRUE) {
XMLGregorianCalendar lhsDateOfCreation;
lhsDateOfCreation = leftObject.getDateOfCreation();
XMLGregorianCalendar rhsDateOfCreation;
rhsDateOfCreation = rightObject.getDateOfCreation();
XMLGregorianCalendar mergedDateOfCreation = ((XMLGregorianCalendar) strategy.merge(LocatorUtils.property(leftLocator, "dateOfCreation", lhsDateOfCreation), LocatorUtils.property(rightLocator, "dateOfCreation", rhsDateOfCreation), lhsDateOfCreation, rhsDateOfCreation, leftObject.isSetDateOfCreation(), rightObject.isSetDateOfCreation()));
target.setDateOfCreation(mergedDateOfCreation);
} else {
if (dateOfCreationShouldBeMergedAndSet == Boolean.FALSE) {
target.dateOfCreation = null;
}
}
}
{
Boolean administratorShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetAdministrator(), rightObject.isSetAdministrator());
if (administratorShouldBeMergedAndSet == Boolean.TRUE) {
CIResponsiblePartyPropertyType lhsAdministrator;
lhsAdministrator = leftObject.getAdministrator();
CIResponsiblePartyPropertyType rhsAdministrator;
rhsAdministrator = rightObject.getAdministrator();
CIResponsiblePartyPropertyType mergedAdministrator = ((CIResponsiblePartyPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "administrator", lhsAdministrator), LocatorUtils.property(rightLocator, "administrator", rhsAdministrator), lhsAdministrator, rhsAdministrator, leftObject.isSetAdministrator(), rightObject.isSetAdministrator()));
target.setAdministrator(mergedAdministrator);
} else {
if (administratorShouldBeMergedAndSet == Boolean.FALSE) {
target.administrator = null;
}
}
}
{
Boolean spatialObjectShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetSpatialObject(), rightObject.isSetSpatialObject());
if (spatialObjectShouldBeMergedAndSet == Boolean.TRUE) {
String lhsSpatialObject;
lhsSpatialObject = leftObject.getSpatialObject();
String rhsSpatialObject;
rhsSpatialObject = rightObject.getSpatialObject();
String mergedSpatialObject = ((String) strategy.merge(LocatorUtils.property(leftLocator, "spatialObject", lhsSpatialObject), LocatorUtils.property(rightLocator, "spatialObject", rhsSpatialObject), lhsSpatialObject, rhsSpatialObject, leftObject.isSetSpatialObject(), rightObject.isSetSpatialObject()));
target.setSpatialObject(mergedSpatialObject);
} else {
if (spatialObjectShouldBeMergedAndSet == Boolean.FALSE) {
target.spatialObject = null;
}
}
}
{
Boolean parentShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetParent(), rightObject.isSetParent());
if (parentShouldBeMergedAndSet == Boolean.TRUE) {
List<ReferenceType> lhsParent;
lhsParent = (leftObject.isSetParent()?leftObject.getParent():null);
List<ReferenceType> rhsParent;
rhsParent = (rightObject.isSetParent()?rightObject.getParent():null);
List<ReferenceType> mergedParent = ((List<ReferenceType> ) strategy.merge(LocatorUtils.property(leftLocator, "parent", lhsParent), LocatorUtils.property(rightLocator, "parent", rhsParent), lhsParent, rhsParent, leftObject.isSetParent(), rightObject.isSetParent()));
target.unsetParent();
if (mergedParent!= null) {
List<ReferenceType> uniqueParentl = target.getParent();
uniqueParentl.addAll(mergedParent);
}
} else {
if (parentShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetParent();
}
}
}
{
Boolean childShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetChild(), rightObject.isSetChild());
if (childShouldBeMergedAndSet == Boolean.TRUE) {
List<ReferenceType> lhsChild;
lhsChild = (leftObject.isSetChild()?leftObject.getChild():null);
List<ReferenceType> rhsChild;
rhsChild = (rightObject.isSetChild()?rightObject.getChild():null);
List<ReferenceType> mergedChild = ((List<ReferenceType> ) strategy.merge(LocatorUtils.property(leftLocator, "child", lhsChild), LocatorUtils.property(rightLocator, "child", rhsChild), lhsChild, rhsChild, leftObject.isSetChild(), rightObject.isSetChild()));
target.unsetChild();
if (mergedChild!= null) {
List<ReferenceType> uniqueChildl = target.getChild();
uniqueChildl.addAll(mergedChild);
}
} else {
if (childShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetChild();
}
}
}
{
Boolean locationTypeShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetLocationType(), rightObject.isSetLocationType());
if (locationTypeShouldBeMergedAndSet == Boolean.TRUE) {
ReferenceType lhsLocationType;
lhsLocationType = leftObject.getLocationType();
ReferenceType rhsLocationType;
rhsLocationType = rightObject.getLocationType();
ReferenceType mergedLocationType = ((ReferenceType) strategy.merge(LocatorUtils.property(leftLocator, "locationType", lhsLocationType), LocatorUtils.property(rightLocator, "locationType", rhsLocationType), lhsLocationType, rhsLocationType, leftObject.isSetLocationType(), rightObject.isSetLocationType()));
target.setLocationType(mergedLocationType);
} else {
if (locationTypeShouldBeMergedAndSet == Boolean.FALSE) {
target.locationType = null;
}
}
}
}
}
public void setGeographicExtent(List<GeometryPropertyType> value) {
this.geographicExtent = null;
if (value!= null) {
List<GeometryPropertyType> draftl = this.getGeographicExtent();
draftl.addAll(value);
}
}
public void setParent(List<ReferenceType> value) {
this.parent = null;
if (value!= null) {
List<ReferenceType> draftl = this.getParent();
draftl.addAll(value);
}
}
public void setChild(List<ReferenceType> value) {
this.child = null;
if (value!= null) {
List<ReferenceType> draftl = this.getChild();
draftl.addAll(value);
}
}
}