//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.11
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2016.07.27 at 04:06:37 PM EDT
//
package org.isotc211._2005.gmd;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import org.isotc211._2005.gco.AbstractObjectType;
import org.isotc211._2005.gco.CharacterStringPropertyType;
import org.isotc211._2005.gco.DatePropertyType;
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;
/**
* Standardized resource reference
*
* <p>Java class for CI_Citation_Type complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="CI_Citation_Type">
* <complexContent>
* <extension base="{http://www.isotc211.org/2005/gco}AbstractObject_Type">
* <sequence>
* <element name="title" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType"/>
* <element name="alternateTitle" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="date" type="{http://www.isotc211.org/2005/gmd}CI_Date_PropertyType" maxOccurs="unbounded"/>
* <element name="edition" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" minOccurs="0"/>
* <element name="editionDate" type="{http://www.isotc211.org/2005/gco}Date_PropertyType" minOccurs="0"/>
* <element name="identifier" type="{http://www.isotc211.org/2005/gmd}MD_Identifier_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="citedResponsibleParty" type="{http://www.isotc211.org/2005/gmd}CI_ResponsibleParty_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="presentationForm" type="{http://www.isotc211.org/2005/gmd}CI_PresentationFormCode_PropertyType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="series" type="{http://www.isotc211.org/2005/gmd}CI_Series_PropertyType" minOccurs="0"/>
* <element name="otherCitationDetails" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" minOccurs="0"/>
* <element name="collectiveTitle" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" minOccurs="0"/>
* <element name="ISBN" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" minOccurs="0"/>
* <element name="ISSN" type="{http://www.isotc211.org/2005/gco}CharacterString_PropertyType" minOccurs="0"/>
* </sequence>
* </extension>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CI_Citation_Type", propOrder = {
"title",
"alternateTitle",
"date",
"edition",
"editionDate",
"identifier",
"citedResponsibleParty",
"presentationForm",
"series",
"otherCitationDetails",
"collectiveTitle",
"isbn",
"issn"
})
public class CICitationType
extends AbstractObjectType
implements Serializable, Cloneable, CopyTo2, Equals2, HashCode2, MergeFrom2, ToString2
{
private final static long serialVersionUID = 1L;
@XmlElement(required = true)
@NotNull(message = "CICitationType.title {javax.validation.constraints.NotNull.message}")
@Valid
protected CharacterStringPropertyType title;
@Valid
protected List<CharacterStringPropertyType> alternateTitle;
@XmlElement(required = true)
@NotNull(message = "CICitationType.date {javax.validation.constraints.NotNull.message}")
@Size(min = 1)
@Valid
protected List<CIDatePropertyType> date;
@Valid
protected CharacterStringPropertyType edition;
@Valid
protected DatePropertyType editionDate;
@Valid
protected List<MDIdentifierPropertyType> identifier;
@Valid
protected List<CIResponsiblePartyPropertyType> citedResponsibleParty;
@Valid
protected List<CIPresentationFormCodePropertyType> presentationForm;
@Valid
protected CISeriesPropertyType series;
@Valid
protected CharacterStringPropertyType otherCitationDetails;
@Valid
protected CharacterStringPropertyType collectiveTitle;
@XmlElement(name = "ISBN")
@Valid
protected CharacterStringPropertyType isbn;
@XmlElement(name = "ISSN")
@Valid
protected CharacterStringPropertyType issn;
/**
* Gets the value of the title property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getTitle() {
return title;
}
/**
* Sets the value of the title property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setTitle(CharacterStringPropertyType value) {
this.title = value;
}
public boolean isSetTitle() {
return (this.title!= null);
}
/**
* Gets the value of the alternateTitle 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 alternateTitle property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getAlternateTitle().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CharacterStringPropertyType }
*
*
*/
public List<CharacterStringPropertyType> getAlternateTitle() {
if (alternateTitle == null) {
alternateTitle = new ArrayList<CharacterStringPropertyType>();
}
return this.alternateTitle;
}
public boolean isSetAlternateTitle() {
return ((this.alternateTitle!= null)&&(!this.alternateTitle.isEmpty()));
}
public void unsetAlternateTitle() {
this.alternateTitle = null;
}
/**
* Gets the value of the date 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 date property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getDate().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CIDatePropertyType }
*
*
*/
public List<CIDatePropertyType> getDate() {
if (date == null) {
date = new ArrayList<CIDatePropertyType>();
}
return this.date;
}
public boolean isSetDate() {
return ((this.date!= null)&&(!this.date.isEmpty()));
}
public void unsetDate() {
this.date = null;
}
/**
* Gets the value of the edition property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getEdition() {
return edition;
}
/**
* Sets the value of the edition property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setEdition(CharacterStringPropertyType value) {
this.edition = value;
}
public boolean isSetEdition() {
return (this.edition!= null);
}
/**
* Gets the value of the editionDate property.
*
* @return
* possible object is
* {@link DatePropertyType }
*
*/
public DatePropertyType getEditionDate() {
return editionDate;
}
/**
* Sets the value of the editionDate property.
*
* @param value
* allowed object is
* {@link DatePropertyType }
*
*/
public void setEditionDate(DatePropertyType value) {
this.editionDate = value;
}
public boolean isSetEditionDate() {
return (this.editionDate!= null);
}
/**
* Gets the value of the identifier 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 identifier property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getIdentifier().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link MDIdentifierPropertyType }
*
*
*/
public List<MDIdentifierPropertyType> getIdentifier() {
if (identifier == null) {
identifier = new ArrayList<MDIdentifierPropertyType>();
}
return this.identifier;
}
public boolean isSetIdentifier() {
return ((this.identifier!= null)&&(!this.identifier.isEmpty()));
}
public void unsetIdentifier() {
this.identifier = null;
}
/**
* Gets the value of the citedResponsibleParty 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 citedResponsibleParty property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getCitedResponsibleParty().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CIResponsiblePartyPropertyType }
*
*
*/
public List<CIResponsiblePartyPropertyType> getCitedResponsibleParty() {
if (citedResponsibleParty == null) {
citedResponsibleParty = new ArrayList<CIResponsiblePartyPropertyType>();
}
return this.citedResponsibleParty;
}
public boolean isSetCitedResponsibleParty() {
return ((this.citedResponsibleParty!= null)&&(!this.citedResponsibleParty.isEmpty()));
}
public void unsetCitedResponsibleParty() {
this.citedResponsibleParty = null;
}
/**
* Gets the value of the presentationForm 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 presentationForm property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getPresentationForm().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CIPresentationFormCodePropertyType }
*
*
*/
public List<CIPresentationFormCodePropertyType> getPresentationForm() {
if (presentationForm == null) {
presentationForm = new ArrayList<CIPresentationFormCodePropertyType>();
}
return this.presentationForm;
}
public boolean isSetPresentationForm() {
return ((this.presentationForm!= null)&&(!this.presentationForm.isEmpty()));
}
public void unsetPresentationForm() {
this.presentationForm = null;
}
/**
* Gets the value of the series property.
*
* @return
* possible object is
* {@link CISeriesPropertyType }
*
*/
public CISeriesPropertyType getSeries() {
return series;
}
/**
* Sets the value of the series property.
*
* @param value
* allowed object is
* {@link CISeriesPropertyType }
*
*/
public void setSeries(CISeriesPropertyType value) {
this.series = value;
}
public boolean isSetSeries() {
return (this.series!= null);
}
/**
* Gets the value of the otherCitationDetails property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getOtherCitationDetails() {
return otherCitationDetails;
}
/**
* Sets the value of the otherCitationDetails property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setOtherCitationDetails(CharacterStringPropertyType value) {
this.otherCitationDetails = value;
}
public boolean isSetOtherCitationDetails() {
return (this.otherCitationDetails!= null);
}
/**
* Gets the value of the collectiveTitle property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getCollectiveTitle() {
return collectiveTitle;
}
/**
* Sets the value of the collectiveTitle property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setCollectiveTitle(CharacterStringPropertyType value) {
this.collectiveTitle = value;
}
public boolean isSetCollectiveTitle() {
return (this.collectiveTitle!= null);
}
/**
* Gets the value of the isbn property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getISBN() {
return isbn;
}
/**
* Sets the value of the isbn property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setISBN(CharacterStringPropertyType value) {
this.isbn = value;
}
public boolean isSetISBN() {
return (this.isbn!= null);
}
/**
* Gets the value of the issn property.
*
* @return
* possible object is
* {@link CharacterStringPropertyType }
*
*/
public CharacterStringPropertyType getISSN() {
return issn;
}
/**
* Sets the value of the issn property.
*
* @param value
* allowed object is
* {@link CharacterStringPropertyType }
*
*/
public void setISSN(CharacterStringPropertyType value) {
this.issn = value;
}
public boolean isSetISSN() {
return (this.issn!= null);
}
public String toString() {
final ToStringStrategy2 strategy = JAXBToStringStrategy.INSTANCE;
final StringBuilder buffer = new StringBuilder();
append(null, buffer, strategy);
return buffer.toString();
}
public StringBuilder append(ObjectLocator locator, StringBuilder buffer, ToStringStrategy2 strategy) {
strategy.appendStart(locator, this, buffer);
appendFields(locator, buffer, strategy);
strategy.appendEnd(locator, this, buffer);
return buffer;
}
public StringBuilder appendFields(ObjectLocator locator, StringBuilder buffer, ToStringStrategy2 strategy) {
super.appendFields(locator, buffer, strategy);
{
CharacterStringPropertyType theTitle;
theTitle = this.getTitle();
strategy.appendField(locator, this, "title", buffer, theTitle, this.isSetTitle());
}
{
List<CharacterStringPropertyType> theAlternateTitle;
theAlternateTitle = (this.isSetAlternateTitle()?this.getAlternateTitle():null);
strategy.appendField(locator, this, "alternateTitle", buffer, theAlternateTitle, this.isSetAlternateTitle());
}
{
List<CIDatePropertyType> theDate;
theDate = (this.isSetDate()?this.getDate():null);
strategy.appendField(locator, this, "date", buffer, theDate, this.isSetDate());
}
{
CharacterStringPropertyType theEdition;
theEdition = this.getEdition();
strategy.appendField(locator, this, "edition", buffer, theEdition, this.isSetEdition());
}
{
DatePropertyType theEditionDate;
theEditionDate = this.getEditionDate();
strategy.appendField(locator, this, "editionDate", buffer, theEditionDate, this.isSetEditionDate());
}
{
List<MDIdentifierPropertyType> theIdentifier;
theIdentifier = (this.isSetIdentifier()?this.getIdentifier():null);
strategy.appendField(locator, this, "identifier", buffer, theIdentifier, this.isSetIdentifier());
}
{
List<CIResponsiblePartyPropertyType> theCitedResponsibleParty;
theCitedResponsibleParty = (this.isSetCitedResponsibleParty()?this.getCitedResponsibleParty():null);
strategy.appendField(locator, this, "citedResponsibleParty", buffer, theCitedResponsibleParty, this.isSetCitedResponsibleParty());
}
{
List<CIPresentationFormCodePropertyType> thePresentationForm;
thePresentationForm = (this.isSetPresentationForm()?this.getPresentationForm():null);
strategy.appendField(locator, this, "presentationForm", buffer, thePresentationForm, this.isSetPresentationForm());
}
{
CISeriesPropertyType theSeries;
theSeries = this.getSeries();
strategy.appendField(locator, this, "series", buffer, theSeries, this.isSetSeries());
}
{
CharacterStringPropertyType theOtherCitationDetails;
theOtherCitationDetails = this.getOtherCitationDetails();
strategy.appendField(locator, this, "otherCitationDetails", buffer, theOtherCitationDetails, this.isSetOtherCitationDetails());
}
{
CharacterStringPropertyType theCollectiveTitle;
theCollectiveTitle = this.getCollectiveTitle();
strategy.appendField(locator, this, "collectiveTitle", buffer, theCollectiveTitle, this.isSetCollectiveTitle());
}
{
CharacterStringPropertyType theISBN;
theISBN = this.getISBN();
strategy.appendField(locator, this, "isbn", buffer, theISBN, this.isSetISBN());
}
{
CharacterStringPropertyType theISSN;
theISSN = this.getISSN();
strategy.appendField(locator, this, "issn", buffer, theISSN, this.isSetISSN());
}
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 CICitationType that = ((CICitationType) object);
{
CharacterStringPropertyType lhsTitle;
lhsTitle = this.getTitle();
CharacterStringPropertyType rhsTitle;
rhsTitle = that.getTitle();
if (!strategy.equals(LocatorUtils.property(thisLocator, "title", lhsTitle), LocatorUtils.property(thatLocator, "title", rhsTitle), lhsTitle, rhsTitle, this.isSetTitle(), that.isSetTitle())) {
return false;
}
}
{
List<CharacterStringPropertyType> lhsAlternateTitle;
lhsAlternateTitle = (this.isSetAlternateTitle()?this.getAlternateTitle():null);
List<CharacterStringPropertyType> rhsAlternateTitle;
rhsAlternateTitle = (that.isSetAlternateTitle()?that.getAlternateTitle():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "alternateTitle", lhsAlternateTitle), LocatorUtils.property(thatLocator, "alternateTitle", rhsAlternateTitle), lhsAlternateTitle, rhsAlternateTitle, this.isSetAlternateTitle(), that.isSetAlternateTitle())) {
return false;
}
}
{
List<CIDatePropertyType> lhsDate;
lhsDate = (this.isSetDate()?this.getDate():null);
List<CIDatePropertyType> rhsDate;
rhsDate = (that.isSetDate()?that.getDate():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "date", lhsDate), LocatorUtils.property(thatLocator, "date", rhsDate), lhsDate, rhsDate, this.isSetDate(), that.isSetDate())) {
return false;
}
}
{
CharacterStringPropertyType lhsEdition;
lhsEdition = this.getEdition();
CharacterStringPropertyType rhsEdition;
rhsEdition = that.getEdition();
if (!strategy.equals(LocatorUtils.property(thisLocator, "edition", lhsEdition), LocatorUtils.property(thatLocator, "edition", rhsEdition), lhsEdition, rhsEdition, this.isSetEdition(), that.isSetEdition())) {
return false;
}
}
{
DatePropertyType lhsEditionDate;
lhsEditionDate = this.getEditionDate();
DatePropertyType rhsEditionDate;
rhsEditionDate = that.getEditionDate();
if (!strategy.equals(LocatorUtils.property(thisLocator, "editionDate", lhsEditionDate), LocatorUtils.property(thatLocator, "editionDate", rhsEditionDate), lhsEditionDate, rhsEditionDate, this.isSetEditionDate(), that.isSetEditionDate())) {
return false;
}
}
{
List<MDIdentifierPropertyType> lhsIdentifier;
lhsIdentifier = (this.isSetIdentifier()?this.getIdentifier():null);
List<MDIdentifierPropertyType> rhsIdentifier;
rhsIdentifier = (that.isSetIdentifier()?that.getIdentifier():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "identifier", lhsIdentifier), LocatorUtils.property(thatLocator, "identifier", rhsIdentifier), lhsIdentifier, rhsIdentifier, this.isSetIdentifier(), that.isSetIdentifier())) {
return false;
}
}
{
List<CIResponsiblePartyPropertyType> lhsCitedResponsibleParty;
lhsCitedResponsibleParty = (this.isSetCitedResponsibleParty()?this.getCitedResponsibleParty():null);
List<CIResponsiblePartyPropertyType> rhsCitedResponsibleParty;
rhsCitedResponsibleParty = (that.isSetCitedResponsibleParty()?that.getCitedResponsibleParty():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "citedResponsibleParty", lhsCitedResponsibleParty), LocatorUtils.property(thatLocator, "citedResponsibleParty", rhsCitedResponsibleParty), lhsCitedResponsibleParty, rhsCitedResponsibleParty, this.isSetCitedResponsibleParty(), that.isSetCitedResponsibleParty())) {
return false;
}
}
{
List<CIPresentationFormCodePropertyType> lhsPresentationForm;
lhsPresentationForm = (this.isSetPresentationForm()?this.getPresentationForm():null);
List<CIPresentationFormCodePropertyType> rhsPresentationForm;
rhsPresentationForm = (that.isSetPresentationForm()?that.getPresentationForm():null);
if (!strategy.equals(LocatorUtils.property(thisLocator, "presentationForm", lhsPresentationForm), LocatorUtils.property(thatLocator, "presentationForm", rhsPresentationForm), lhsPresentationForm, rhsPresentationForm, this.isSetPresentationForm(), that.isSetPresentationForm())) {
return false;
}
}
{
CISeriesPropertyType lhsSeries;
lhsSeries = this.getSeries();
CISeriesPropertyType rhsSeries;
rhsSeries = that.getSeries();
if (!strategy.equals(LocatorUtils.property(thisLocator, "series", lhsSeries), LocatorUtils.property(thatLocator, "series", rhsSeries), lhsSeries, rhsSeries, this.isSetSeries(), that.isSetSeries())) {
return false;
}
}
{
CharacterStringPropertyType lhsOtherCitationDetails;
lhsOtherCitationDetails = this.getOtherCitationDetails();
CharacterStringPropertyType rhsOtherCitationDetails;
rhsOtherCitationDetails = that.getOtherCitationDetails();
if (!strategy.equals(LocatorUtils.property(thisLocator, "otherCitationDetails", lhsOtherCitationDetails), LocatorUtils.property(thatLocator, "otherCitationDetails", rhsOtherCitationDetails), lhsOtherCitationDetails, rhsOtherCitationDetails, this.isSetOtherCitationDetails(), that.isSetOtherCitationDetails())) {
return false;
}
}
{
CharacterStringPropertyType lhsCollectiveTitle;
lhsCollectiveTitle = this.getCollectiveTitle();
CharacterStringPropertyType rhsCollectiveTitle;
rhsCollectiveTitle = that.getCollectiveTitle();
if (!strategy.equals(LocatorUtils.property(thisLocator, "collectiveTitle", lhsCollectiveTitle), LocatorUtils.property(thatLocator, "collectiveTitle", rhsCollectiveTitle), lhsCollectiveTitle, rhsCollectiveTitle, this.isSetCollectiveTitle(), that.isSetCollectiveTitle())) {
return false;
}
}
{
CharacterStringPropertyType lhsISBN;
lhsISBN = this.getISBN();
CharacterStringPropertyType rhsISBN;
rhsISBN = that.getISBN();
if (!strategy.equals(LocatorUtils.property(thisLocator, "isbn", lhsISBN), LocatorUtils.property(thatLocator, "isbn", rhsISBN), lhsISBN, rhsISBN, this.isSetISBN(), that.isSetISBN())) {
return false;
}
}
{
CharacterStringPropertyType lhsISSN;
lhsISSN = this.getISSN();
CharacterStringPropertyType rhsISSN;
rhsISSN = that.getISSN();
if (!strategy.equals(LocatorUtils.property(thisLocator, "issn", lhsISSN), LocatorUtils.property(thatLocator, "issn", rhsISSN), lhsISSN, rhsISSN, this.isSetISSN(), that.isSetISSN())) {
return false;
}
}
return true;
}
public boolean equals(Object object) {
final EqualsStrategy2 strategy = JAXBEqualsStrategy.INSTANCE;
return equals(null, null, object, strategy);
}
public int hashCode(ObjectLocator locator, HashCodeStrategy2 strategy) {
int currentHashCode = super.hashCode(locator, strategy);
{
CharacterStringPropertyType theTitle;
theTitle = this.getTitle();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "title", theTitle), currentHashCode, theTitle, this.isSetTitle());
}
{
List<CharacterStringPropertyType> theAlternateTitle;
theAlternateTitle = (this.isSetAlternateTitle()?this.getAlternateTitle():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "alternateTitle", theAlternateTitle), currentHashCode, theAlternateTitle, this.isSetAlternateTitle());
}
{
List<CIDatePropertyType> theDate;
theDate = (this.isSetDate()?this.getDate():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "date", theDate), currentHashCode, theDate, this.isSetDate());
}
{
CharacterStringPropertyType theEdition;
theEdition = this.getEdition();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "edition", theEdition), currentHashCode, theEdition, this.isSetEdition());
}
{
DatePropertyType theEditionDate;
theEditionDate = this.getEditionDate();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "editionDate", theEditionDate), currentHashCode, theEditionDate, this.isSetEditionDate());
}
{
List<MDIdentifierPropertyType> theIdentifier;
theIdentifier = (this.isSetIdentifier()?this.getIdentifier():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "identifier", theIdentifier), currentHashCode, theIdentifier, this.isSetIdentifier());
}
{
List<CIResponsiblePartyPropertyType> theCitedResponsibleParty;
theCitedResponsibleParty = (this.isSetCitedResponsibleParty()?this.getCitedResponsibleParty():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "citedResponsibleParty", theCitedResponsibleParty), currentHashCode, theCitedResponsibleParty, this.isSetCitedResponsibleParty());
}
{
List<CIPresentationFormCodePropertyType> thePresentationForm;
thePresentationForm = (this.isSetPresentationForm()?this.getPresentationForm():null);
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "presentationForm", thePresentationForm), currentHashCode, thePresentationForm, this.isSetPresentationForm());
}
{
CISeriesPropertyType theSeries;
theSeries = this.getSeries();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "series", theSeries), currentHashCode, theSeries, this.isSetSeries());
}
{
CharacterStringPropertyType theOtherCitationDetails;
theOtherCitationDetails = this.getOtherCitationDetails();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "otherCitationDetails", theOtherCitationDetails), currentHashCode, theOtherCitationDetails, this.isSetOtherCitationDetails());
}
{
CharacterStringPropertyType theCollectiveTitle;
theCollectiveTitle = this.getCollectiveTitle();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "collectiveTitle", theCollectiveTitle), currentHashCode, theCollectiveTitle, this.isSetCollectiveTitle());
}
{
CharacterStringPropertyType theISBN;
theISBN = this.getISBN();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "isbn", theISBN), currentHashCode, theISBN, this.isSetISBN());
}
{
CharacterStringPropertyType theISSN;
theISSN = this.getISSN();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "issn", theISSN), currentHashCode, theISSN, this.isSetISSN());
}
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 CICitationType) {
final CICitationType copy = ((CICitationType) draftCopy);
{
Boolean titleShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetTitle());
if (titleShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceTitle;
sourceTitle = this.getTitle();
CharacterStringPropertyType copyTitle = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "title", sourceTitle), sourceTitle, this.isSetTitle()));
copy.setTitle(copyTitle);
} else {
if (titleShouldBeCopiedAndSet == Boolean.FALSE) {
copy.title = null;
}
}
}
{
Boolean alternateTitleShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetAlternateTitle());
if (alternateTitleShouldBeCopiedAndSet == Boolean.TRUE) {
List<CharacterStringPropertyType> sourceAlternateTitle;
sourceAlternateTitle = (this.isSetAlternateTitle()?this.getAlternateTitle():null);
@SuppressWarnings("unchecked")
List<CharacterStringPropertyType> copyAlternateTitle = ((List<CharacterStringPropertyType> ) strategy.copy(LocatorUtils.property(locator, "alternateTitle", sourceAlternateTitle), sourceAlternateTitle, this.isSetAlternateTitle()));
copy.unsetAlternateTitle();
if (copyAlternateTitle!= null) {
List<CharacterStringPropertyType> uniqueAlternateTitlel = copy.getAlternateTitle();
uniqueAlternateTitlel.addAll(copyAlternateTitle);
}
} else {
if (alternateTitleShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetAlternateTitle();
}
}
}
{
Boolean dateShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetDate());
if (dateShouldBeCopiedAndSet == Boolean.TRUE) {
List<CIDatePropertyType> sourceDate;
sourceDate = (this.isSetDate()?this.getDate():null);
@SuppressWarnings("unchecked")
List<CIDatePropertyType> copyDate = ((List<CIDatePropertyType> ) strategy.copy(LocatorUtils.property(locator, "date", sourceDate), sourceDate, this.isSetDate()));
copy.unsetDate();
if (copyDate!= null) {
List<CIDatePropertyType> uniqueDatel = copy.getDate();
uniqueDatel.addAll(copyDate);
}
} else {
if (dateShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetDate();
}
}
}
{
Boolean editionShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetEdition());
if (editionShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceEdition;
sourceEdition = this.getEdition();
CharacterStringPropertyType copyEdition = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "edition", sourceEdition), sourceEdition, this.isSetEdition()));
copy.setEdition(copyEdition);
} else {
if (editionShouldBeCopiedAndSet == Boolean.FALSE) {
copy.edition = null;
}
}
}
{
Boolean editionDateShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetEditionDate());
if (editionDateShouldBeCopiedAndSet == Boolean.TRUE) {
DatePropertyType sourceEditionDate;
sourceEditionDate = this.getEditionDate();
DatePropertyType copyEditionDate = ((DatePropertyType) strategy.copy(LocatorUtils.property(locator, "editionDate", sourceEditionDate), sourceEditionDate, this.isSetEditionDate()));
copy.setEditionDate(copyEditionDate);
} else {
if (editionDateShouldBeCopiedAndSet == Boolean.FALSE) {
copy.editionDate = null;
}
}
}
{
Boolean identifierShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetIdentifier());
if (identifierShouldBeCopiedAndSet == Boolean.TRUE) {
List<MDIdentifierPropertyType> sourceIdentifier;
sourceIdentifier = (this.isSetIdentifier()?this.getIdentifier():null);
@SuppressWarnings("unchecked")
List<MDIdentifierPropertyType> copyIdentifier = ((List<MDIdentifierPropertyType> ) strategy.copy(LocatorUtils.property(locator, "identifier", sourceIdentifier), sourceIdentifier, this.isSetIdentifier()));
copy.unsetIdentifier();
if (copyIdentifier!= null) {
List<MDIdentifierPropertyType> uniqueIdentifierl = copy.getIdentifier();
uniqueIdentifierl.addAll(copyIdentifier);
}
} else {
if (identifierShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetIdentifier();
}
}
}
{
Boolean citedResponsiblePartyShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetCitedResponsibleParty());
if (citedResponsiblePartyShouldBeCopiedAndSet == Boolean.TRUE) {
List<CIResponsiblePartyPropertyType> sourceCitedResponsibleParty;
sourceCitedResponsibleParty = (this.isSetCitedResponsibleParty()?this.getCitedResponsibleParty():null);
@SuppressWarnings("unchecked")
List<CIResponsiblePartyPropertyType> copyCitedResponsibleParty = ((List<CIResponsiblePartyPropertyType> ) strategy.copy(LocatorUtils.property(locator, "citedResponsibleParty", sourceCitedResponsibleParty), sourceCitedResponsibleParty, this.isSetCitedResponsibleParty()));
copy.unsetCitedResponsibleParty();
if (copyCitedResponsibleParty!= null) {
List<CIResponsiblePartyPropertyType> uniqueCitedResponsiblePartyl = copy.getCitedResponsibleParty();
uniqueCitedResponsiblePartyl.addAll(copyCitedResponsibleParty);
}
} else {
if (citedResponsiblePartyShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetCitedResponsibleParty();
}
}
}
{
Boolean presentationFormShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetPresentationForm());
if (presentationFormShouldBeCopiedAndSet == Boolean.TRUE) {
List<CIPresentationFormCodePropertyType> sourcePresentationForm;
sourcePresentationForm = (this.isSetPresentationForm()?this.getPresentationForm():null);
@SuppressWarnings("unchecked")
List<CIPresentationFormCodePropertyType> copyPresentationForm = ((List<CIPresentationFormCodePropertyType> ) strategy.copy(LocatorUtils.property(locator, "presentationForm", sourcePresentationForm), sourcePresentationForm, this.isSetPresentationForm()));
copy.unsetPresentationForm();
if (copyPresentationForm!= null) {
List<CIPresentationFormCodePropertyType> uniquePresentationForml = copy.getPresentationForm();
uniquePresentationForml.addAll(copyPresentationForm);
}
} else {
if (presentationFormShouldBeCopiedAndSet == Boolean.FALSE) {
copy.unsetPresentationForm();
}
}
}
{
Boolean seriesShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetSeries());
if (seriesShouldBeCopiedAndSet == Boolean.TRUE) {
CISeriesPropertyType sourceSeries;
sourceSeries = this.getSeries();
CISeriesPropertyType copySeries = ((CISeriesPropertyType) strategy.copy(LocatorUtils.property(locator, "series", sourceSeries), sourceSeries, this.isSetSeries()));
copy.setSeries(copySeries);
} else {
if (seriesShouldBeCopiedAndSet == Boolean.FALSE) {
copy.series = null;
}
}
}
{
Boolean otherCitationDetailsShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetOtherCitationDetails());
if (otherCitationDetailsShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceOtherCitationDetails;
sourceOtherCitationDetails = this.getOtherCitationDetails();
CharacterStringPropertyType copyOtherCitationDetails = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "otherCitationDetails", sourceOtherCitationDetails), sourceOtherCitationDetails, this.isSetOtherCitationDetails()));
copy.setOtherCitationDetails(copyOtherCitationDetails);
} else {
if (otherCitationDetailsShouldBeCopiedAndSet == Boolean.FALSE) {
copy.otherCitationDetails = null;
}
}
}
{
Boolean collectiveTitleShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetCollectiveTitle());
if (collectiveTitleShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceCollectiveTitle;
sourceCollectiveTitle = this.getCollectiveTitle();
CharacterStringPropertyType copyCollectiveTitle = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "collectiveTitle", sourceCollectiveTitle), sourceCollectiveTitle, this.isSetCollectiveTitle()));
copy.setCollectiveTitle(copyCollectiveTitle);
} else {
if (collectiveTitleShouldBeCopiedAndSet == Boolean.FALSE) {
copy.collectiveTitle = null;
}
}
}
{
Boolean isbnShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetISBN());
if (isbnShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceISBN;
sourceISBN = this.getISBN();
CharacterStringPropertyType copyISBN = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "isbn", sourceISBN), sourceISBN, this.isSetISBN()));
copy.setISBN(copyISBN);
} else {
if (isbnShouldBeCopiedAndSet == Boolean.FALSE) {
copy.isbn = null;
}
}
}
{
Boolean issnShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetISSN());
if (issnShouldBeCopiedAndSet == Boolean.TRUE) {
CharacterStringPropertyType sourceISSN;
sourceISSN = this.getISSN();
CharacterStringPropertyType copyISSN = ((CharacterStringPropertyType) strategy.copy(LocatorUtils.property(locator, "issn", sourceISSN), sourceISSN, this.isSetISSN()));
copy.setISSN(copyISSN);
} else {
if (issnShouldBeCopiedAndSet == Boolean.FALSE) {
copy.issn = null;
}
}
}
}
return draftCopy;
}
public Object createNewInstance() {
return new CICitationType();
}
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 CICitationType) {
final CICitationType target = this;
final CICitationType leftObject = ((CICitationType) left);
final CICitationType rightObject = ((CICitationType) right);
{
Boolean titleShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetTitle(), rightObject.isSetTitle());
if (titleShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsTitle;
lhsTitle = leftObject.getTitle();
CharacterStringPropertyType rhsTitle;
rhsTitle = rightObject.getTitle();
CharacterStringPropertyType mergedTitle = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "title", lhsTitle), LocatorUtils.property(rightLocator, "title", rhsTitle), lhsTitle, rhsTitle, leftObject.isSetTitle(), rightObject.isSetTitle()));
target.setTitle(mergedTitle);
} else {
if (titleShouldBeMergedAndSet == Boolean.FALSE) {
target.title = null;
}
}
}
{
Boolean alternateTitleShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetAlternateTitle(), rightObject.isSetAlternateTitle());
if (alternateTitleShouldBeMergedAndSet == Boolean.TRUE) {
List<CharacterStringPropertyType> lhsAlternateTitle;
lhsAlternateTitle = (leftObject.isSetAlternateTitle()?leftObject.getAlternateTitle():null);
List<CharacterStringPropertyType> rhsAlternateTitle;
rhsAlternateTitle = (rightObject.isSetAlternateTitle()?rightObject.getAlternateTitle():null);
List<CharacterStringPropertyType> mergedAlternateTitle = ((List<CharacterStringPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "alternateTitle", lhsAlternateTitle), LocatorUtils.property(rightLocator, "alternateTitle", rhsAlternateTitle), lhsAlternateTitle, rhsAlternateTitle, leftObject.isSetAlternateTitle(), rightObject.isSetAlternateTitle()));
target.unsetAlternateTitle();
if (mergedAlternateTitle!= null) {
List<CharacterStringPropertyType> uniqueAlternateTitlel = target.getAlternateTitle();
uniqueAlternateTitlel.addAll(mergedAlternateTitle);
}
} else {
if (alternateTitleShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetAlternateTitle();
}
}
}
{
Boolean dateShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetDate(), rightObject.isSetDate());
if (dateShouldBeMergedAndSet == Boolean.TRUE) {
List<CIDatePropertyType> lhsDate;
lhsDate = (leftObject.isSetDate()?leftObject.getDate():null);
List<CIDatePropertyType> rhsDate;
rhsDate = (rightObject.isSetDate()?rightObject.getDate():null);
List<CIDatePropertyType> mergedDate = ((List<CIDatePropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "date", lhsDate), LocatorUtils.property(rightLocator, "date", rhsDate), lhsDate, rhsDate, leftObject.isSetDate(), rightObject.isSetDate()));
target.unsetDate();
if (mergedDate!= null) {
List<CIDatePropertyType> uniqueDatel = target.getDate();
uniqueDatel.addAll(mergedDate);
}
} else {
if (dateShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetDate();
}
}
}
{
Boolean editionShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetEdition(), rightObject.isSetEdition());
if (editionShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsEdition;
lhsEdition = leftObject.getEdition();
CharacterStringPropertyType rhsEdition;
rhsEdition = rightObject.getEdition();
CharacterStringPropertyType mergedEdition = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "edition", lhsEdition), LocatorUtils.property(rightLocator, "edition", rhsEdition), lhsEdition, rhsEdition, leftObject.isSetEdition(), rightObject.isSetEdition()));
target.setEdition(mergedEdition);
} else {
if (editionShouldBeMergedAndSet == Boolean.FALSE) {
target.edition = null;
}
}
}
{
Boolean editionDateShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetEditionDate(), rightObject.isSetEditionDate());
if (editionDateShouldBeMergedAndSet == Boolean.TRUE) {
DatePropertyType lhsEditionDate;
lhsEditionDate = leftObject.getEditionDate();
DatePropertyType rhsEditionDate;
rhsEditionDate = rightObject.getEditionDate();
DatePropertyType mergedEditionDate = ((DatePropertyType) strategy.merge(LocatorUtils.property(leftLocator, "editionDate", lhsEditionDate), LocatorUtils.property(rightLocator, "editionDate", rhsEditionDate), lhsEditionDate, rhsEditionDate, leftObject.isSetEditionDate(), rightObject.isSetEditionDate()));
target.setEditionDate(mergedEditionDate);
} else {
if (editionDateShouldBeMergedAndSet == Boolean.FALSE) {
target.editionDate = null;
}
}
}
{
Boolean identifierShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetIdentifier(), rightObject.isSetIdentifier());
if (identifierShouldBeMergedAndSet == Boolean.TRUE) {
List<MDIdentifierPropertyType> lhsIdentifier;
lhsIdentifier = (leftObject.isSetIdentifier()?leftObject.getIdentifier():null);
List<MDIdentifierPropertyType> rhsIdentifier;
rhsIdentifier = (rightObject.isSetIdentifier()?rightObject.getIdentifier():null);
List<MDIdentifierPropertyType> mergedIdentifier = ((List<MDIdentifierPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "identifier", lhsIdentifier), LocatorUtils.property(rightLocator, "identifier", rhsIdentifier), lhsIdentifier, rhsIdentifier, leftObject.isSetIdentifier(), rightObject.isSetIdentifier()));
target.unsetIdentifier();
if (mergedIdentifier!= null) {
List<MDIdentifierPropertyType> uniqueIdentifierl = target.getIdentifier();
uniqueIdentifierl.addAll(mergedIdentifier);
}
} else {
if (identifierShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetIdentifier();
}
}
}
{
Boolean citedResponsiblePartyShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetCitedResponsibleParty(), rightObject.isSetCitedResponsibleParty());
if (citedResponsiblePartyShouldBeMergedAndSet == Boolean.TRUE) {
List<CIResponsiblePartyPropertyType> lhsCitedResponsibleParty;
lhsCitedResponsibleParty = (leftObject.isSetCitedResponsibleParty()?leftObject.getCitedResponsibleParty():null);
List<CIResponsiblePartyPropertyType> rhsCitedResponsibleParty;
rhsCitedResponsibleParty = (rightObject.isSetCitedResponsibleParty()?rightObject.getCitedResponsibleParty():null);
List<CIResponsiblePartyPropertyType> mergedCitedResponsibleParty = ((List<CIResponsiblePartyPropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "citedResponsibleParty", lhsCitedResponsibleParty), LocatorUtils.property(rightLocator, "citedResponsibleParty", rhsCitedResponsibleParty), lhsCitedResponsibleParty, rhsCitedResponsibleParty, leftObject.isSetCitedResponsibleParty(), rightObject.isSetCitedResponsibleParty()));
target.unsetCitedResponsibleParty();
if (mergedCitedResponsibleParty!= null) {
List<CIResponsiblePartyPropertyType> uniqueCitedResponsiblePartyl = target.getCitedResponsibleParty();
uniqueCitedResponsiblePartyl.addAll(mergedCitedResponsibleParty);
}
} else {
if (citedResponsiblePartyShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetCitedResponsibleParty();
}
}
}
{
Boolean presentationFormShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetPresentationForm(), rightObject.isSetPresentationForm());
if (presentationFormShouldBeMergedAndSet == Boolean.TRUE) {
List<CIPresentationFormCodePropertyType> lhsPresentationForm;
lhsPresentationForm = (leftObject.isSetPresentationForm()?leftObject.getPresentationForm():null);
List<CIPresentationFormCodePropertyType> rhsPresentationForm;
rhsPresentationForm = (rightObject.isSetPresentationForm()?rightObject.getPresentationForm():null);
List<CIPresentationFormCodePropertyType> mergedPresentationForm = ((List<CIPresentationFormCodePropertyType> ) strategy.merge(LocatorUtils.property(leftLocator, "presentationForm", lhsPresentationForm), LocatorUtils.property(rightLocator, "presentationForm", rhsPresentationForm), lhsPresentationForm, rhsPresentationForm, leftObject.isSetPresentationForm(), rightObject.isSetPresentationForm()));
target.unsetPresentationForm();
if (mergedPresentationForm!= null) {
List<CIPresentationFormCodePropertyType> uniquePresentationForml = target.getPresentationForm();
uniquePresentationForml.addAll(mergedPresentationForm);
}
} else {
if (presentationFormShouldBeMergedAndSet == Boolean.FALSE) {
target.unsetPresentationForm();
}
}
}
{
Boolean seriesShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetSeries(), rightObject.isSetSeries());
if (seriesShouldBeMergedAndSet == Boolean.TRUE) {
CISeriesPropertyType lhsSeries;
lhsSeries = leftObject.getSeries();
CISeriesPropertyType rhsSeries;
rhsSeries = rightObject.getSeries();
CISeriesPropertyType mergedSeries = ((CISeriesPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "series", lhsSeries), LocatorUtils.property(rightLocator, "series", rhsSeries), lhsSeries, rhsSeries, leftObject.isSetSeries(), rightObject.isSetSeries()));
target.setSeries(mergedSeries);
} else {
if (seriesShouldBeMergedAndSet == Boolean.FALSE) {
target.series = null;
}
}
}
{
Boolean otherCitationDetailsShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetOtherCitationDetails(), rightObject.isSetOtherCitationDetails());
if (otherCitationDetailsShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsOtherCitationDetails;
lhsOtherCitationDetails = leftObject.getOtherCitationDetails();
CharacterStringPropertyType rhsOtherCitationDetails;
rhsOtherCitationDetails = rightObject.getOtherCitationDetails();
CharacterStringPropertyType mergedOtherCitationDetails = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "otherCitationDetails", lhsOtherCitationDetails), LocatorUtils.property(rightLocator, "otherCitationDetails", rhsOtherCitationDetails), lhsOtherCitationDetails, rhsOtherCitationDetails, leftObject.isSetOtherCitationDetails(), rightObject.isSetOtherCitationDetails()));
target.setOtherCitationDetails(mergedOtherCitationDetails);
} else {
if (otherCitationDetailsShouldBeMergedAndSet == Boolean.FALSE) {
target.otherCitationDetails = null;
}
}
}
{
Boolean collectiveTitleShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetCollectiveTitle(), rightObject.isSetCollectiveTitle());
if (collectiveTitleShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsCollectiveTitle;
lhsCollectiveTitle = leftObject.getCollectiveTitle();
CharacterStringPropertyType rhsCollectiveTitle;
rhsCollectiveTitle = rightObject.getCollectiveTitle();
CharacterStringPropertyType mergedCollectiveTitle = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "collectiveTitle", lhsCollectiveTitle), LocatorUtils.property(rightLocator, "collectiveTitle", rhsCollectiveTitle), lhsCollectiveTitle, rhsCollectiveTitle, leftObject.isSetCollectiveTitle(), rightObject.isSetCollectiveTitle()));
target.setCollectiveTitle(mergedCollectiveTitle);
} else {
if (collectiveTitleShouldBeMergedAndSet == Boolean.FALSE) {
target.collectiveTitle = null;
}
}
}
{
Boolean isbnShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetISBN(), rightObject.isSetISBN());
if (isbnShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsISBN;
lhsISBN = leftObject.getISBN();
CharacterStringPropertyType rhsISBN;
rhsISBN = rightObject.getISBN();
CharacterStringPropertyType mergedISBN = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "isbn", lhsISBN), LocatorUtils.property(rightLocator, "isbn", rhsISBN), lhsISBN, rhsISBN, leftObject.isSetISBN(), rightObject.isSetISBN()));
target.setISBN(mergedISBN);
} else {
if (isbnShouldBeMergedAndSet == Boolean.FALSE) {
target.isbn = null;
}
}
}
{
Boolean issnShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetISSN(), rightObject.isSetISSN());
if (issnShouldBeMergedAndSet == Boolean.TRUE) {
CharacterStringPropertyType lhsISSN;
lhsISSN = leftObject.getISSN();
CharacterStringPropertyType rhsISSN;
rhsISSN = rightObject.getISSN();
CharacterStringPropertyType mergedISSN = ((CharacterStringPropertyType) strategy.merge(LocatorUtils.property(leftLocator, "issn", lhsISSN), LocatorUtils.property(rightLocator, "issn", rhsISSN), lhsISSN, rhsISSN, leftObject.isSetISSN(), rightObject.isSetISSN()));
target.setISSN(mergedISSN);
} else {
if (issnShouldBeMergedAndSet == Boolean.FALSE) {
target.issn = null;
}
}
}
}
}
public void setAlternateTitle(List<CharacterStringPropertyType> value) {
this.alternateTitle = null;
if (value!= null) {
List<CharacterStringPropertyType> draftl = this.getAlternateTitle();
draftl.addAll(value);
}
}
public void setDate(List<CIDatePropertyType> value) {
this.date = null;
if (value!= null) {
List<CIDatePropertyType> draftl = this.getDate();
draftl.addAll(value);
}
}
public void setIdentifier(List<MDIdentifierPropertyType> value) {
this.identifier = null;
if (value!= null) {
List<MDIdentifierPropertyType> draftl = this.getIdentifier();
draftl.addAll(value);
}
}
public void setCitedResponsibleParty(List<CIResponsiblePartyPropertyType> value) {
this.citedResponsibleParty = null;
if (value!= null) {
List<CIResponsiblePartyPropertyType> draftl = this.getCitedResponsibleParty();
draftl.addAll(value);
}
}
public void setPresentationForm(List<CIPresentationFormCodePropertyType> value) {
this.presentationForm = null;
if (value!= null) {
List<CIPresentationFormCodePropertyType> draftl = this.getPresentationForm();
draftl.addAll(value);
}
}
}