//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.11
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2016.07.27 at 04:06:37 PM EDT
//
package org.isotc211._2005.gmd;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import org.isotc211._2005.gco.BooleanPropertyType;
import org.isotc211._2005.gco.CharacterStringPropertyType;
import org.isotc211._2005.gco.RecordPropertyType;
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_Georeferenceable_Type complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="MD_Georeferenceable_Type">
* <complexContent>
* <extension base="{http://www.isotc211.org/2005/gmd}MD_GridSpatialRepresentation_Type">
* <sequence>
* <element name="controlPointAvailability" type="{http://www.isotc211.org/2005/gco}Boolean_PropertyType"/>
* <element name="orientationParameterAvailability" type="{http://www.isotc211.org/2005/gco}Boolean_PropertyType"/>
* <element name="orientationParameterDescription" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" minOccurs="0"/>
* <element name="georeferencedParameters" type="{http://www.isotc211.org/2005/gco}Record_PropertyType"/>
* <element name="parameterCitation" type="{http://www.isotc211.org/2005/gmd}CI_Citation_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* </sequence>
* </extension>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "MD_Georeferenceable_Type", propOrder = {
"controlPointAvailability",
"orientationParameterAvailability",
"orientationParameterDescription",
"georeferencedParameters",
"parameterCitation"
})
public class MDGeoreferenceableType
extends MDGridSpatialRepresentationType
implements Serializable, Cloneable, CopyTo2, Equals2, HashCode2, MergeFrom2, ToString2
{
private final static long serialVersionUID = 1L;
@XmlElement(required = true)
@NotNull(message = "MDGeoreferenceableType.controlPointAvailability {javax.validation.constraints.NotNull.message}")
@Valid
protected BooleanPropertyType controlPointAvailability;
@XmlElement(required = true)
@NotNull(message = "MDGeoreferenceableType.orientationParameterAvailability {javax.validation.constraints.NotNull.message}")
@Valid
protected BooleanPropertyType orientationParameterAvailability;
@Valid
protected CharacterStringPropertyType orientationParameterDescription;
@XmlElement(required = true)
@NotNull(message = "MDGeoreferenceableType.georeferencedParameters {javax.validation.constraints.NotNull.message}")
@Valid
protected RecordPropertyType georeferencedParameters;
@Valid
protected List<CICitationPropertyType> parameterCitation;
/**
* Gets the value of the controlPointAvailability property.
*
* @return
* possible object is
* {@link BooleanPropertyType }
*
*/
public BooleanPropertyType getControlPointAvailability() {
return controlPointAvailability;
}
/**
* Sets the value of the controlPointAvailability property.
*
* @param value
* allowed object is
* {@link BooleanPropertyType }
*
*/
public void setControlPointAvailability(BooleanPropertyType value) {
this.controlPointAvailability = value;
}
public boolean isSetControlPointAvailability() {
return (this.controlPointAvailability!= null);
}
/**
* Gets the value of the orientationParameterAvailability property.
*
* @return
* possible object is
* {@link BooleanPropertyType }
*
*/
public BooleanPropertyType getOrientationParameterAvailability() {
return orientationParameterAvailability;
}
/**
* Sets the value of the orientationParameterAvailability property.
*
* @param value
* allowed object is
* {@link BooleanPropertyType }
*
*/
public void setOrientationParameterAvailability(BooleanPropertyType value) {
this.orientationParameterAvailability = value;
}
public boolean isSetOrientationParameterAvailability() {
return (this.orientationParameterAvailability!= null);
}
/**
* Gets the value of the orientationParameterDescription property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getOrientationParameterDescription() {
return orientationParameterDescription;
}
/**
* Sets the value of the orientationParameterDescription property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setOrientationParameterDescription(CharacterStringPropertyType value) {
this.orientationParameterDescription = value;
}
public boolean isSetOrientationParameterDescription() {
return (this.orientationParameterDescription!= null);
}
/**
* Gets the value of the georeferencedParameters property.
*
* @return
* possible object is
* {@link RecordPropertyType }
*
*/
public RecordPropertyType getGeoreferencedParameters() {
return georeferencedParameters;
}
/**
* Sets the value of the georeferencedParameters property.
*
* @param value
* allowed object is
* {@link RecordPropertyType }
*
*/
public void setGeoreferencedParameters(RecordPropertyType value) {
this.georeferencedParameters = value;
}
public boolean isSetGeoreferencedParameters() {
return (this.georeferencedParameters!= null);
}
/**
* Gets the value of the parameterCitation 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 parameterCitation property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getParameterCitation().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CICitationPropertyType }
*
*
*/
public List<CICitationPropertyType> getParameterCitation() {
if (parameterCitation == null) {
parameterCitation = new ArrayList<CICitationPropertyType>();
}
return this.parameterCitation;
}
public boolean isSetParameterCitation() {
return ((this.parameterCitation!= null)&&(!this.parameterCitation.isEmpty()));
}
public void unsetParameterCitation() {
this.parameterCitation = 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);
{
BooleanPropertyType theControlPointAvailability;
theControlPointAvailability = this.getControlPointAvailability();
strategy.appendField(locator, this, "controlPointAvailability", buffer, theControlPointAvailability, this.isSetControlPointAvailability());
}
{
BooleanPropertyType theOrientationParameterAvailability;
theOrientationParameterAvailability = this.getOrientationParameterAvailability();
strategy.appendField(locator, this, "orientationParameterAvailability", buffer, theOrientationParameterAvailability, this.isSetOrientationParameterAvailability());
}
{
CharacterStringPropertyType theOrientationParameterDescription;
theOrientationParameterDescription = this.getOrientationParameterDescription();
strategy.appendField(locator, this, "orientationParameterDescription", buffer, theOrientationParameterDescription, this.isSetOrientationParameterDescription());
}
{
RecordPropertyType theGeoreferencedParameters;
theGeoreferencedParameters = this.getGeoreferencedParameters();
strategy.appendField(locator, this, "georeferencedParameters", buffer, theGeoreferencedParameters, this.isSetGeoreferencedParameters());
}
{
List<CICitationPropertyType> theParameterCitation;
theParameterCitation = (this.isSetParameterCitation()?this.getParameterCitation():null);
strategy.appendField(locator, this, "parameterCitation", buffer, theParameterCitation, this.isSetParameterCitation());
}
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 MDGeoreferenceableType that = ((MDGeoreferenceableType) object);
{
BooleanPropertyType lhsControlPointAvailability;
lhsControlPointAvailability = this.getControlPointAvailability();
BooleanPropertyType rhsControlPointAvailability;
rhsControlPointAvailability = that.getControlPointAvailability();
if (!strategy.equals(LocatorUtils.property(thisLocator, "controlPointAvailability", lhsControlPointAvailability), LocatorUtils.property(thatLocator, "controlPointAvailability", rhsControlPointAvailability), lhsControlPointAvailability, rhsControlPointAvailability, this.isSetControlPointAvailability(), that.isSetControlPointAvailability())) {
return false;
}
}
{
BooleanPropertyType lhsOrientationParameterAvailability;
lhsOrientationParameterAvailability = this.getOrientationParameterAvailability();
BooleanPropertyType rhsOrientationParameterAvailability;
rhsOrientationParameterAvailability = that.getOrientationParameterAvailability();
if (!strategy.equals(LocatorUtils.property(thisLocator, "orientationParameterAvailability", lhsOrientationParameterAvailability), LocatorUtils.property(thatLocator, "orientationParameterAvailability", rhsOrientationParameterAvailability), lhsOrientationParameterAvailability, rhsOrientationParameterAvailability, this.isSetOrientationParameterAvailability(), that.isSetOrientationParameterAvailability())) {
return false;
}
}
{
CharacterStringPropertyType lhsOrientationParameterDescription;
lhsOrientationParameterDescription = this.getOrientationParameterDescription();
CharacterStringPropertyType rhsOrientationParameterDescription;
rhsOrientationParameterDescription = that.getOrientationParameterDescription();
if (!strategy.equals(LocatorUtils.property(thisLocator, "orientationParameterDescription", lhsOrientationParameterDescription), LocatorUtils.property(thatLocator, "orientationParameterDescription", rhsOrientationParameterDescription), lhsOrientationParameterDescription, rhsOrientationParameterDescription, this.isSetOrientationParameterDescription(), that.isSetOrientationParameterDescription())) {
return false;
}
}
{
RecordPropertyType lhsGeoreferencedParameters;
lhsGeoreferencedParameters = this.getGeoreferencedParameters();
RecordPropertyType rhsGeoreferencedParameters;
rhsGeoreferencedParameters = that.getGeoreferencedParameters();
if (!strategy.equals(LocatorUtils.property(thisLocator, "georeferencedParameters", lhsGeoreferencedParameters), LocatorUtils.property(thatLocator, "georeferencedParameters", rhsGeoreferencedParameters), lhsGeoreferencedParameters, rhsGeoreferencedParameters, this.isSetGeoreferencedParameters(), that.isSetGeoreferencedParameters())) {
return false;
}
}
{
List<CICitationPropertyType> lhsParameterCitation;
lhsParameterCitation = (this.isSetParameterCitation()?this.getParameterCitation():null);
List<CICitationPropertyType> rhsParameterCitation;
rhsParameterCitation = (that.isSetParameterCitation()?that.getParameterCitation():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "parameterCitation", lhsParameterCitation), LocatorUtils.property(thatLocator, "parameterCitation", rhsParameterCitation), lhsParameterCitation, rhsParameterCitation, this.isSetParameterCitation(), that.isSetParameterCitation())) {
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);
{
BooleanPropertyType theControlPointAvailability;
theControlPointAvailability = this.getControlPointAvailability();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "controlPointAvailability", theControlPointAvailability), currentHashCode, theControlPointAvailability, this.isSetControlPointAvailability());
}
{
BooleanPropertyType theOrientationParameterAvailability;
theOrientationParameterAvailability = this.getOrientationParameterAvailability();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "orientationParameterAvailability", theOrientationParameterAvailability), currentHashCode, theOrientationParameterAvailability, this.isSetOrientationParameterAvailability());
}
{
CharacterStringPropertyType theOrientationParameterDescription;
theOrientationParameterDescription = this.getOrientationParameterDescription();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "orientationParameterDescription", theOrientationParameterDescription), currentHashCode, theOrientationParameterDescription, this.isSetOrientationParameterDescription());
}
{
RecordPropertyType theGeoreferencedParameters;
theGeoreferencedParameters = this.getGeoreferencedParameters();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "georeferencedParameters", theGeoreferencedParameters), currentHashCode, theGeoreferencedParameters, this.isSetGeoreferencedParameters());
}
{
List<CICitationPropertyType> theParameterCitation;
theParameterCitation = (this.isSetParameterCitation()?this.getParameterCitation():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "parameterCitation", theParameterCitation), currentHashCode, theParameterCitation, this.isSetParameterCitation());
}
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 MDGeoreferenceableType) {
final MDGeoreferenceableType copy = ((MDGeoreferenceableType) draftCopy);
{
Boolean controlPointAvailabilityShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetControlPointAvailability());
if (controlPointAvailabilityShouldBeCopiedAndSet == Boolean.TRUE) {
BooleanPropertyType sourceControlPointAvailability;
sourceControlPointAvailability = this.getControlPointAvailability();
BooleanPropertyType copyControlPointAvailability = ((BooleanPropertyType) strategy.copy(LocatorUtils.property(locator, "controlPointAvailability", sourceControlPointAvailability), sourceControlPointAvailability, this.isSetControlPointAvailability()));
copy.setControlPointAvailability(copyControlPointAvailability);
} else {
if (controlPointAvailabilityShouldBeCopiedAndSet == Boolean.FALSE) {
copy.controlPointAvailability = null;
}
}
}
{
Boolean orientationParameterAvailabilityShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetOrientationParameterAvailability());
if (orientationParameterAvailabilityShouldBeCopiedAndSet == Boolean.TRUE) {
BooleanPropertyType sourceOrientationParameterAvailability;
sourceOrientationParameterAvailability = this.getOrientationParameterAvailability();
BooleanPropertyType copyOrientationParameterAvailability = ((BooleanPropertyType) strategy.copy(LocatorUtils.property(locator, "orientationParameterAvailability", sourceOrientationParameterAvailability), sourceOrientationParameterAvailability, this.isSetOrientationParameterAvailability()));
copy.setOrientationParameterAvailability(copyOrientationParameterAvailability);
} else {
if (orientationParameterAvailabilityShouldBeCopiedAndSet == Boolean.FALSE) {
copy.orientationParameterAvailability = null;
}
}
}
{
Boolean orientationParameterDescriptionShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetOrientationParameterDescription());
if (orientationParameterDescriptionShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceOrientationParameterDescription;
sourceOrientationParameterDescription = this.getOrientationParameterDescription();
CharacterStringPropertyType copyOrientationParameterDescription = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "orientationParameterDescription", sourceOrientationParameterDescription), sourceOrientationParameterDescription, this.isSetOrientationParameterDescription()));
copy.setOrientationParameterDescription(copyOrientationParameterDescription);
} else {
if (orientationParameterDescriptionShouldBeCopiedAndSet == Boolean.FALSE) {
copy.orientationParameterDescription = null;
}
}
}
{
Boolean georeferencedParametersShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetGeoreferencedParameters());
if (georeferencedParametersShouldBeCopiedAndSet == Boolean.TRUE) {
RecordPropertyType sourceGeoreferencedParameters;
sourceGeoreferencedParameters = this.getGeoreferencedParameters();
RecordPropertyType copyGeoreferencedParameters = ((RecordPropertyType) strategy.copy(LocatorUtils.property(locator, "georeferencedParameters", sourceGeoreferencedParameters), sourceGeoreferencedParameters, this.isSetGeoreferencedParameters()));
copy.setGeoreferencedParameters(copyGeoreferencedParameters);
} else {
if (georeferencedParametersShouldBeCopiedAndSet == Boolean.FALSE) {
copy.georeferencedParameters = null;
}
}
}
{
Boolean parameterCitationShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetParameterCitation());
if (parameterCitationShouldBeCopiedAndSet == Boolean.TRUE) {
List<CICitationPropertyType> sourceParameterCitation;
sourceParameterCitation = (this.isSetParameterCitation()?this.getParameterCitation():null);
@SuppressWarnings("unchecked")
List<CICitationPropertyType> copyParameterCitation = ((List<CICitationPropertyType> ) strategy.copy(LocatorUtils.property(locator, "parameterCitation", sourceParameterCitation), sourceParameterCitation, this.isSetParameterCitation()));
copy.unsetParameterCitation();
if (copyParameterCitation!= null) {
List<CICitationPropertyType> uniqueParameterCitationl = copy.getParameterCitation();
uniqueParameterCitationl.addAll(copyParameterCitation);
}
} else {
if (parameterCitationShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetParameterCitation();
}
}
}
}
return draftCopy;
}
public Object createNewInstance() {
return new MDGeoreferenceableType();
}
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 MDGeoreferenceableType) {
final MDGeoreferenceableType target = this;
final MDGeoreferenceableType leftObject = ((MDGeoreferenceableType) left);
final MDGeoreferenceableType rightObject = ((MDGeoreferenceableType) right);
{
Boolean controlPointAvailabilityShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetControlPointAvailability(), rightObject.isSetControlPointAvailability());
if (controlPointAvailabilityShouldBeMergedAndSet == Boolean.TRUE) {
BooleanPropertyType lhsControlPointAvailability;
lhsControlPointAvailability = leftObject.getControlPointAvailability();
BooleanPropertyType rhsControlPointAvailability;
rhsControlPointAvailability = rightObject.getControlPointAvailability();
BooleanPropertyType mergedControlPointAvailability = ((BooleanPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "controlPointAvailability", lhsControlPointAvailability), LocatorUtils.property(rightLocator, "controlPointAvailability", rhsControlPointAvailability), lhsControlPointAvailability, rhsControlPointAvailability, leftObject.isSetControlPointAvailability(), rightObject.isSetControlPointAvailability()));
target.setControlPointAvailability(mergedControlPointAvailability);
} else {
if (controlPointAvailabilityShouldBeMergedAndSet == Boolean.FALSE) {
target.controlPointAvailability = null;
}
}
}
{
Boolean orientationParameterAvailabilityShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetOrientationParameterAvailability(), rightObject.isSetOrientationParameterAvailability());
if (orientationParameterAvailabilityShouldBeMergedAndSet == Boolean.TRUE) {
BooleanPropertyType lhsOrientationParameterAvailability;
lhsOrientationParameterAvailability = leftObject.getOrientationParameterAvailability();
BooleanPropertyType rhsOrientationParameterAvailability;
rhsOrientationParameterAvailability = rightObject.getOrientationParameterAvailability();
BooleanPropertyType mergedOrientationParameterAvailability = ((BooleanPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "orientationParameterAvailability", lhsOrientationParameterAvailability), LocatorUtils.property(rightLocator, "orientationParameterAvailability", rhsOrientationParameterAvailability), lhsOrientationParameterAvailability, rhsOrientationParameterAvailability, leftObject.isSetOrientationParameterAvailability(), rightObject.isSetOrientationParameterAvailability()));
target.setOrientationParameterAvailability(mergedOrientationParameterAvailability);
} else {
if (orientationParameterAvailabilityShouldBeMergedAndSet == Boolean.FALSE) {
target.orientationParameterAvailability = null;
}
}
}
{
Boolean orientationParameterDescriptionShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetOrientationParameterDescription(), rightObject.isSetOrientationParameterDescription());
if (orientationParameterDescriptionShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsOrientationParameterDescription;
lhsOrientationParameterDescription = leftObject.getOrientationParameterDescription();
CharacterStringPropertyType rhsOrientationParameterDescription;
rhsOrientationParameterDescription = rightObject.getOrientationParameterDescription();
CharacterStringPropertyType mergedOrientationParameterDescription = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "orientationParameterDescription", lhsOrientationParameterDescription), LocatorUtils.property(rightLocator, "orientationParameterDescription", rhsOrientationParameterDescription), lhsOrientationParameterDescription, rhsOrientationParameterDescription, leftObject.isSetOrientationParameterDescription(), rightObject.isSetOrientationParameterDescription()));
target.setOrientationParameterDescription(mergedOrientationParameterDescription);
} else {
if (orientationParameterDescriptionShouldBeMergedAndSet == Boolean.FALSE) {
target.orientationParameterDescription = null;
}
}
}
{
Boolean georeferencedParametersShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetGeoreferencedParameters(), rightObject.isSetGeoreferencedParameters());
if (georeferencedParametersShouldBeMergedAndSet == Boolean.TRUE) {
RecordPropertyType lhsGeoreferencedParameters;
lhsGeoreferencedParameters = leftObject.getGeoreferencedParameters();
RecordPropertyType rhsGeoreferencedParameters;
rhsGeoreferencedParameters = rightObject.getGeoreferencedParameters();
RecordPropertyType mergedGeoreferencedParameters = ((RecordPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "georeferencedParameters", lhsGeoreferencedParameters), LocatorUtils.property(rightLocator, "georeferencedParameters", rhsGeoreferencedParameters), lhsGeoreferencedParameters, rhsGeoreferencedParameters, leftObject.isSetGeoreferencedParameters(), rightObject.isSetGeoreferencedParameters()));
target.setGeoreferencedParameters(mergedGeoreferencedParameters);
} else {
if (georeferencedParametersShouldBeMergedAndSet == Boolean.FALSE) {
target.georeferencedParameters = null;
}
}
}
{
Boolean parameterCitationShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetParameterCitation(), rightObject.isSetParameterCitation());
if (parameterCitationShouldBeMergedAndSet == Boolean.TRUE) {
List<CICitationPropertyType> lhsParameterCitation;
lhsParameterCitation = (leftObject.isSetParameterCitation()?leftObject.getParameterCitation():null);
List<CICitationPropertyType> rhsParameterCitation;
rhsParameterCitation = (rightObject.isSetParameterCitation()?rightObject.getParameterCitation():null);
List<CICitationPropertyType> mergedParameterCitation = ((List<CICitationPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "parameterCitation", lhsParameterCitation), LocatorUtils.property(rightLocator, "parameterCitation", rhsParameterCitation), lhsParameterCitation, rhsParameterCitation, leftObject.isSetParameterCitation(), rightObject.isSetParameterCitation()));
target.unsetParameterCitation();
if (mergedParameterCitation!= null) {
List<CICitationPropertyType> uniqueParameterCitationl = target.getParameterCitation();
uniqueParameterCitationl.addAll(mergedParameterCitation);
}
} else {
if (parameterCitationShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetParameterCitation();
}
}
}
}
}
public void setParameterCitation(List<CICitationPropertyType> value) {
this.parameterCitation = null;
if (value!= null) {
List<CICitationPropertyType> draftl = this.getParameterCitation();
draftl.addAll(value);
}
}
}