// // 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 us.mil.ces.metadata.ddms._5; 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.JAXBElement; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlElementRefs; import javax.xml.bind.annotation.XmlSchemaType; import javax.xml.bind.annotation.XmlType; 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; import us.gov.ic.virt.VirtualCoverageType; /** * <p>Java class for ResourceType complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <complexType name="ResourceType"> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element ref="{urn:us:mil:ces:metadata:ddms:5}metacardInfo"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}identifier" maxOccurs="unbounded"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}title" maxOccurs="unbounded"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}subtitle" maxOccurs="unbounded" minOccurs="0"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}description" minOccurs="0"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}language" maxOccurs="unbounded" minOccurs="0"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}dates" minOccurs="0"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}rights" minOccurs="0"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}source" maxOccurs="unbounded" minOccurs="0"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}type" maxOccurs="unbounded" minOccurs="0"/> * <choice maxOccurs="unbounded"> * <element ref="{urn:us:mil:ces:metadata:ddms:5}creator" maxOccurs="unbounded"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}publisher" maxOccurs="unbounded"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}contributor" maxOccurs="unbounded"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}pointOfContact" maxOccurs="unbounded"/> * </choice> * <element ref="{urn:us:mil:ces:metadata:ddms:5}format" minOccurs="0"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}subjectCoverage" maxOccurs="unbounded"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}virtualCoverage" maxOccurs="unbounded" minOccurs="0"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}temporalCoverage" maxOccurs="unbounded" minOccurs="0"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}geospatialCoverage" maxOccurs="unbounded" minOccurs="0"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}relatedResource" maxOccurs="unbounded" minOccurs="0"/> * <element ref="{urn:us:mil:ces:metadata:ddms:5}resourceManagement" minOccurs="0"/> * </sequence> * <attribute name="compliesWith" type="{http://www.w3.org/2001/XMLSchema}NMTOKENS" /> * </restriction> * </complexContent> * </complexType> * </pre> * * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "ResourceType", propOrder = { "metacardInfo", "identifier", "title", "subtitle", "description", "language", "dates", "rights", "source", "type", "creatorOrPublisherOrContributor", "format", "subjectCoverage", "virtualCoverage", "temporalCoverage", "geospatialCoverage", "relatedResource", "resourceManagement" }) public class ResourceType implements Serializable, Cloneable, CopyTo2, Equals2, HashCode2, MergeFrom2, ToString2 { private final static long serialVersionUID = 1L; @XmlElement(required = true) @NotNull(message = "ResourceType.metacardInfo {javax.validation.constraints.NotNull.message}") @Valid protected MetacardInfoType metacardInfo; @XmlElement(required = true) @NotNull(message = "ResourceType.identifier {javax.validation.constraints.NotNull.message}") @Size(min = 1) @Valid protected List<CompoundResourceIdentifierType> identifier; @XmlElement(required = true) @NotNull(message = "ResourceType.title {javax.validation.constraints.NotNull.message}") @Size(min = 1) @Valid protected List<TitleType> title; @Valid protected List<SubtitleType> subtitle; @Valid protected DescriptionType description; @Valid protected List<CompoundLanguageIdentifierType> language; @Valid protected DatesType dates; @Valid protected RightsType rights; @Valid protected List<CompoundSourceIdentifierType> source; @Valid protected List<CompoundTypeIdentifierType> type; @XmlElementRefs({ @XmlElementRef(name = "publisher", namespace = "urn:us:mil:ces:metadata:ddms:5", type = JAXBElement.class, required = false), @XmlElementRef(name = "contributor", namespace = "urn:us:mil:ces:metadata:ddms:5", type = JAXBElement.class, required = false), @XmlElementRef(name = "pointOfContact", namespace = "urn:us:mil:ces:metadata:ddms:5", type = JAXBElement.class, required = false), @XmlElementRef(name = "creator", namespace = "urn:us:mil:ces:metadata:ddms:5", type = JAXBElement.class, required = false) }) protected List<JAXBElement<ContactInfoType>> creatorOrPublisherOrContributor; @Valid protected FormatType format; @XmlElement(required = true) @NotNull(message = "ResourceType.subjectCoverage {javax.validation.constraints.NotNull.message}") @Size(min = 1) @Valid protected List<SubjectType> subjectCoverage; @Valid protected List<VirtualCoverageType> virtualCoverage; @Valid protected List<TimePeriodType> temporalCoverage; @Valid protected List<PlaceType> geospatialCoverage; @Valid protected List<RelatedResourcesType> relatedResource; @Valid protected ResourceManagementType resourceManagement; @XmlAttribute(name = "compliesWith", namespace = "urn:us:mil:ces:metadata:ddms:5") @XmlSchemaType(name = "NMTOKENS") protected List<String> compliesWith; /** * Gets the value of the metacardInfo property. * * @return * possible object is * {@link MetacardInfoType } * */ public MetacardInfoType getMetacardInfo() { return metacardInfo; } /** * Sets the value of the metacardInfo property. * * @param value * allowed object is * {@link MetacardInfoType } * */ public void setMetacardInfo(MetacardInfoType value) { this.metacardInfo = value; } public boolean isSetMetacardInfo() { return (this.metacardInfo!= 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 CompoundResourceIdentifierType } * * */ public List<CompoundResourceIdentifierType> getIdentifier() { if (identifier == null) { identifier = new ArrayList<CompoundResourceIdentifierType>(); } return this.identifier; } public boolean isSetIdentifier() { return ((this.identifier!= null)&&(!this.identifier.isEmpty())); } public void unsetIdentifier() { this.identifier = null; } /** * Gets the value of the title 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 title property. * * <p> * For example, to add a new item, do as follows: * <pre> * getTitle().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link TitleType } * * */ public List<TitleType> getTitle() { if (title == null) { title = new ArrayList<TitleType>(); } return this.title; } public boolean isSetTitle() { return ((this.title!= null)&&(!this.title.isEmpty())); } public void unsetTitle() { this.title = null; } /** * Gets the value of the subtitle 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 subtitle property. * * <p> * For example, to add a new item, do as follows: * <pre> * getSubtitle().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link SubtitleType } * * */ public List<SubtitleType> getSubtitle() { if (subtitle == null) { subtitle = new ArrayList<SubtitleType>(); } return this.subtitle; } public boolean isSetSubtitle() { return ((this.subtitle!= null)&&(!this.subtitle.isEmpty())); } public void unsetSubtitle() { this.subtitle = null; } /** * Gets the value of the description property. * * @return * possible object is * {@link DescriptionType } * */ public DescriptionType getDescription() { return description; } /** * Sets the value of the description property. * * @param value * allowed object is * {@link DescriptionType } * */ public void setDescription(DescriptionType value) { this.description = value; } public boolean isSetDescription() { return (this.description!= null); } /** * Gets the value of the language property. * * <p> * This accessor method returns a reference to the live list, * not a snapshot. Therefore any modification you make to the * returned list will be present inside the JAXB object. * This is why there is not a <CODE>set</CODE> method for the language property. * * <p> * For example, to add a new item, do as follows: * <pre> * getLanguage().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link CompoundLanguageIdentifierType } * * */ public List<CompoundLanguageIdentifierType> getLanguage() { if (language == null) { language = new ArrayList<CompoundLanguageIdentifierType>(); } return this.language; } public boolean isSetLanguage() { return ((this.language!= null)&&(!this.language.isEmpty())); } public void unsetLanguage() { this.language = null; } /** * Gets the value of the dates property. * * @return * possible object is * {@link DatesType } * */ public DatesType getDates() { return dates; } /** * Sets the value of the dates property. * * @param value * allowed object is * {@link DatesType } * */ public void setDates(DatesType value) { this.dates = value; } public boolean isSetDates() { return (this.dates!= null); } /** * Gets the value of the rights property. * * @return * possible object is * {@link RightsType } * */ public RightsType getRights() { return rights; } /** * Sets the value of the rights property. * * @param value * allowed object is * {@link RightsType } * */ public void setRights(RightsType value) { this.rights = value; } public boolean isSetRights() { return (this.rights!= null); } /** * Gets the value of the source 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 source property. * * <p> * For example, to add a new item, do as follows: * <pre> * getSource().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link CompoundSourceIdentifierType } * * */ public List<CompoundSourceIdentifierType> getSource() { if (source == null) { source = new ArrayList<CompoundSourceIdentifierType>(); } return this.source; } public boolean isSetSource() { return ((this.source!= null)&&(!this.source.isEmpty())); } public void unsetSource() { this.source = null; } /** * Gets the value of the type 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 type property. * * <p> * For example, to add a new item, do as follows: * <pre> * getType().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link CompoundTypeIdentifierType } * * */ public List<CompoundTypeIdentifierType> getType() { if (type == null) { type = new ArrayList<CompoundTypeIdentifierType>(); } return this.type; } public boolean isSetType() { return ((this.type!= null)&&(!this.type.isEmpty())); } public void unsetType() { this.type = null; } /** * Gets the value of the creatorOrPublisherOrContributor 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 creatorOrPublisherOrContributor property. * * <p> * For example, to add a new item, do as follows: * <pre> * getCreatorOrPublisherOrContributor().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link JAXBElement }{@code <}{@link ContactInfoType }{@code >} * {@link JAXBElement }{@code <}{@link ContactInfoType }{@code >} * {@link JAXBElement }{@code <}{@link ContactInfoType }{@code >} * {@link JAXBElement }{@code <}{@link ContactInfoType }{@code >} * * */ public List<JAXBElement<ContactInfoType>> getCreatorOrPublisherOrContributor() { if (creatorOrPublisherOrContributor == null) { creatorOrPublisherOrContributor = new ArrayList<JAXBElement<ContactInfoType>>(); } return this.creatorOrPublisherOrContributor; } public boolean isSetCreatorOrPublisherOrContributor() { return ((this.creatorOrPublisherOrContributor!= null)&&(!this.creatorOrPublisherOrContributor.isEmpty())); } public void unsetCreatorOrPublisherOrContributor() { this.creatorOrPublisherOrContributor = null; } /** * Gets the value of the format property. * * @return * possible object is * {@link FormatType } * */ public FormatType getFormat() { return format; } /** * Sets the value of the format property. * * @param value * allowed object is * {@link FormatType } * */ public void setFormat(FormatType value) { this.format = value; } public boolean isSetFormat() { return (this.format!= null); } /** * Gets the value of the subjectCoverage 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 subjectCoverage property. * * <p> * For example, to add a new item, do as follows: * <pre> * getSubjectCoverage().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link SubjectType } * * */ public List<SubjectType> getSubjectCoverage() { if (subjectCoverage == null) { subjectCoverage = new ArrayList<SubjectType>(); } return this.subjectCoverage; } public boolean isSetSubjectCoverage() { return ((this.subjectCoverage!= null)&&(!this.subjectCoverage.isEmpty())); } public void unsetSubjectCoverage() { this.subjectCoverage = null; } /** * Gets the value of the virtualCoverage 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 virtualCoverage property. * * <p> * For example, to add a new item, do as follows: * <pre> * getVirtualCoverage().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link VirtualCoverageType } * * */ public List<VirtualCoverageType> getVirtualCoverage() { if (virtualCoverage == null) { virtualCoverage = new ArrayList<VirtualCoverageType>(); } return this.virtualCoverage; } public boolean isSetVirtualCoverage() { return ((this.virtualCoverage!= null)&&(!this.virtualCoverage.isEmpty())); } public void unsetVirtualCoverage() { this.virtualCoverage = null; } /** * Gets the value of the temporalCoverage 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 temporalCoverage property. * * <p> * For example, to add a new item, do as follows: * <pre> * getTemporalCoverage().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link TimePeriodType } * * */ public List<TimePeriodType> getTemporalCoverage() { if (temporalCoverage == null) { temporalCoverage = new ArrayList<TimePeriodType>(); } return this.temporalCoverage; } public boolean isSetTemporalCoverage() { return ((this.temporalCoverage!= null)&&(!this.temporalCoverage.isEmpty())); } public void unsetTemporalCoverage() { this.temporalCoverage = null; } /** * Gets the value of the geospatialCoverage 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 geospatialCoverage property. * * <p> * For example, to add a new item, do as follows: * <pre> * getGeospatialCoverage().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link PlaceType } * * */ public List<PlaceType> getGeospatialCoverage() { if (geospatialCoverage == null) { geospatialCoverage = new ArrayList<PlaceType>(); } return this.geospatialCoverage; } public boolean isSetGeospatialCoverage() { return ((this.geospatialCoverage!= null)&&(!this.geospatialCoverage.isEmpty())); } public void unsetGeospatialCoverage() { this.geospatialCoverage = null; } /** * Gets the value of the relatedResource 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 relatedResource property. * * <p> * For example, to add a new item, do as follows: * <pre> * getRelatedResource().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link RelatedResourcesType } * * */ public List<RelatedResourcesType> getRelatedResource() { if (relatedResource == null) { relatedResource = new ArrayList<RelatedResourcesType>(); } return this.relatedResource; } public boolean isSetRelatedResource() { return ((this.relatedResource!= null)&&(!this.relatedResource.isEmpty())); } public void unsetRelatedResource() { this.relatedResource = null; } /** * Gets the value of the resourceManagement property. * * @return * possible object is * {@link ResourceManagementType } * */ public ResourceManagementType getResourceManagement() { return resourceManagement; } /** * Sets the value of the resourceManagement property. * * @param value * allowed object is * {@link ResourceManagementType } * */ public void setResourceManagement(ResourceManagementType value) { this.resourceManagement = value; } public boolean isSetResourceManagement() { return (this.resourceManagement!= null); } /** * Gets the value of the compliesWith 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 compliesWith property. * * <p> * For example, to add a new item, do as follows: * <pre> * getCompliesWith().add(newItem); * </pre> * * * <p> * Objects of the following type(s) are allowed in the list * {@link String } * * */ public List<String> getCompliesWith() { if (compliesWith == null) { compliesWith = new ArrayList<String>(); } return this.compliesWith; } public boolean isSetCompliesWith() { return ((this.compliesWith!= null)&&(!this.compliesWith.isEmpty())); } public void unsetCompliesWith() { this.compliesWith = 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) { { MetacardInfoType theMetacardInfo; theMetacardInfo = this.getMetacardInfo(); strategy.appendField(locator, this, "metacardInfo", buffer, theMetacardInfo, this.isSetMetacardInfo()); } { List<CompoundResourceIdentifierType> theIdentifier; theIdentifier = (this.isSetIdentifier()?this.getIdentifier():null); strategy.appendField(locator, this, "identifier", buffer, theIdentifier, this.isSetIdentifier()); } { List<TitleType> theTitle; theTitle = (this.isSetTitle()?this.getTitle():null); strategy.appendField(locator, this, "title", buffer, theTitle, this.isSetTitle()); } { List<SubtitleType> theSubtitle; theSubtitle = (this.isSetSubtitle()?this.getSubtitle():null); strategy.appendField(locator, this, "subtitle", buffer, theSubtitle, this.isSetSubtitle()); } { DescriptionType theDescription; theDescription = this.getDescription(); strategy.appendField(locator, this, "description", buffer, theDescription, this.isSetDescription()); } { List<CompoundLanguageIdentifierType> theLanguage; theLanguage = (this.isSetLanguage()?this.getLanguage():null); strategy.appendField(locator, this, "language", buffer, theLanguage, this.isSetLanguage()); } { DatesType theDates; theDates = this.getDates(); strategy.appendField(locator, this, "dates", buffer, theDates, this.isSetDates()); } { RightsType theRights; theRights = this.getRights(); strategy.appendField(locator, this, "rights", buffer, theRights, this.isSetRights()); } { List<CompoundSourceIdentifierType> theSource; theSource = (this.isSetSource()?this.getSource():null); strategy.appendField(locator, this, "source", buffer, theSource, this.isSetSource()); } { List<CompoundTypeIdentifierType> theType; theType = (this.isSetType()?this.getType():null); strategy.appendField(locator, this, "type", buffer, theType, this.isSetType()); } { List<JAXBElement<ContactInfoType>> theCreatorOrPublisherOrContributor; theCreatorOrPublisherOrContributor = (this.isSetCreatorOrPublisherOrContributor()?this.getCreatorOrPublisherOrContributor():null); strategy.appendField(locator, this, "creatorOrPublisherOrContributor", buffer, theCreatorOrPublisherOrContributor, this.isSetCreatorOrPublisherOrContributor()); } { FormatType theFormat; theFormat = this.getFormat(); strategy.appendField(locator, this, "format", buffer, theFormat, this.isSetFormat()); } { List<SubjectType> theSubjectCoverage; theSubjectCoverage = (this.isSetSubjectCoverage()?this.getSubjectCoverage():null); strategy.appendField(locator, this, "subjectCoverage", buffer, theSubjectCoverage, this.isSetSubjectCoverage()); } { List<VirtualCoverageType> theVirtualCoverage; theVirtualCoverage = (this.isSetVirtualCoverage()?this.getVirtualCoverage():null); strategy.appendField(locator, this, "virtualCoverage", buffer, theVirtualCoverage, this.isSetVirtualCoverage()); } { List<TimePeriodType> theTemporalCoverage; theTemporalCoverage = (this.isSetTemporalCoverage()?this.getTemporalCoverage():null); strategy.appendField(locator, this, "temporalCoverage", buffer, theTemporalCoverage, this.isSetTemporalCoverage()); } { List<PlaceType> theGeospatialCoverage; theGeospatialCoverage = (this.isSetGeospatialCoverage()?this.getGeospatialCoverage():null); strategy.appendField(locator, this, "geospatialCoverage", buffer, theGeospatialCoverage, this.isSetGeospatialCoverage()); } { List<RelatedResourcesType> theRelatedResource; theRelatedResource = (this.isSetRelatedResource()?this.getRelatedResource():null); strategy.appendField(locator, this, "relatedResource", buffer, theRelatedResource, this.isSetRelatedResource()); } { ResourceManagementType theResourceManagement; theResourceManagement = this.getResourceManagement(); strategy.appendField(locator, this, "resourceManagement", buffer, theResourceManagement, this.isSetResourceManagement()); } { List<String> theCompliesWith; theCompliesWith = (this.isSetCompliesWith()?this.getCompliesWith():null); strategy.appendField(locator, this, "compliesWith", buffer, theCompliesWith, this.isSetCompliesWith()); } return buffer; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy2 strategy) { if ((object == null)||(this.getClass()!= object.getClass())) { return false; } if (this == object) { return true; } final ResourceType that = ((ResourceType) object); { MetacardInfoType lhsMetacardInfo; lhsMetacardInfo = this.getMetacardInfo(); MetacardInfoType rhsMetacardInfo; rhsMetacardInfo = that.getMetacardInfo(); if (!strategy.equals(LocatorUtils.property(thisLocator, "metacardInfo", lhsMetacardInfo), LocatorUtils.property(thatLocator, "metacardInfo", rhsMetacardInfo), lhsMetacardInfo, rhsMetacardInfo, this.isSetMetacardInfo(), that.isSetMetacardInfo())) { return false; } } { List<CompoundResourceIdentifierType> lhsIdentifier; lhsIdentifier = (this.isSetIdentifier()?this.getIdentifier():null); List<CompoundResourceIdentifierType> 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<TitleType> lhsTitle; lhsTitle = (this.isSetTitle()?this.getTitle():null); List<TitleType> rhsTitle; rhsTitle = (that.isSetTitle()?that.getTitle():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "title", lhsTitle), LocatorUtils.property(thatLocator, "title", rhsTitle), lhsTitle, rhsTitle, this.isSetTitle(), that.isSetTitle())) { return false; } } { List<SubtitleType> lhsSubtitle; lhsSubtitle = (this.isSetSubtitle()?this.getSubtitle():null); List<SubtitleType> rhsSubtitle; rhsSubtitle = (that.isSetSubtitle()?that.getSubtitle():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "subtitle", lhsSubtitle), LocatorUtils.property(thatLocator, "subtitle", rhsSubtitle), lhsSubtitle, rhsSubtitle, this.isSetSubtitle(), that.isSetSubtitle())) { return false; } } { DescriptionType lhsDescription; lhsDescription = this.getDescription(); DescriptionType rhsDescription; rhsDescription = that.getDescription(); if (!strategy.equals(LocatorUtils.property(thisLocator, "description", lhsDescription), LocatorUtils.property(thatLocator, "description", rhsDescription), lhsDescription, rhsDescription, this.isSetDescription(), that.isSetDescription())) { return false; } } { List<CompoundLanguageIdentifierType> lhsLanguage; lhsLanguage = (this.isSetLanguage()?this.getLanguage():null); List<CompoundLanguageIdentifierType> rhsLanguage; rhsLanguage = (that.isSetLanguage()?that.getLanguage():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "language", lhsLanguage), LocatorUtils.property(thatLocator, "language", rhsLanguage), lhsLanguage, rhsLanguage, this.isSetLanguage(), that.isSetLanguage())) { return false; } } { DatesType lhsDates; lhsDates = this.getDates(); DatesType rhsDates; rhsDates = that.getDates(); if (!strategy.equals(LocatorUtils.property(thisLocator, "dates", lhsDates), LocatorUtils.property(thatLocator, "dates", rhsDates), lhsDates, rhsDates, this.isSetDates(), that.isSetDates())) { return false; } } { RightsType lhsRights; lhsRights = this.getRights(); RightsType rhsRights; rhsRights = that.getRights(); if (!strategy.equals(LocatorUtils.property(thisLocator, "rights", lhsRights), LocatorUtils.property(thatLocator, "rights", rhsRights), lhsRights, rhsRights, this.isSetRights(), that.isSetRights())) { return false; } } { List<CompoundSourceIdentifierType> lhsSource; lhsSource = (this.isSetSource()?this.getSource():null); List<CompoundSourceIdentifierType> rhsSource; rhsSource = (that.isSetSource()?that.getSource():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "source", lhsSource), LocatorUtils.property(thatLocator, "source", rhsSource), lhsSource, rhsSource, this.isSetSource(), that.isSetSource())) { return false; } } { List<CompoundTypeIdentifierType> lhsType; lhsType = (this.isSetType()?this.getType():null); List<CompoundTypeIdentifierType> rhsType; rhsType = (that.isSetType()?that.getType():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "type", lhsType), LocatorUtils.property(thatLocator, "type", rhsType), lhsType, rhsType, this.isSetType(), that.isSetType())) { return false; } } { List<JAXBElement<ContactInfoType>> lhsCreatorOrPublisherOrContributor; lhsCreatorOrPublisherOrContributor = (this.isSetCreatorOrPublisherOrContributor()?this.getCreatorOrPublisherOrContributor():null); List<JAXBElement<ContactInfoType>> rhsCreatorOrPublisherOrContributor; rhsCreatorOrPublisherOrContributor = (that.isSetCreatorOrPublisherOrContributor()?that.getCreatorOrPublisherOrContributor():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "creatorOrPublisherOrContributor", lhsCreatorOrPublisherOrContributor), LocatorUtils.property(thatLocator, "creatorOrPublisherOrContributor", rhsCreatorOrPublisherOrContributor), lhsCreatorOrPublisherOrContributor, rhsCreatorOrPublisherOrContributor, this.isSetCreatorOrPublisherOrContributor(), that.isSetCreatorOrPublisherOrContributor())) { return false; } } { FormatType lhsFormat; lhsFormat = this.getFormat(); FormatType rhsFormat; rhsFormat = that.getFormat(); if (!strategy.equals(LocatorUtils.property(thisLocator, "format", lhsFormat), LocatorUtils.property(thatLocator, "format", rhsFormat), lhsFormat, rhsFormat, this.isSetFormat(), that.isSetFormat())) { return false; } } { List<SubjectType> lhsSubjectCoverage; lhsSubjectCoverage = (this.isSetSubjectCoverage()?this.getSubjectCoverage():null); List<SubjectType> rhsSubjectCoverage; rhsSubjectCoverage = (that.isSetSubjectCoverage()?that.getSubjectCoverage():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "subjectCoverage", lhsSubjectCoverage), LocatorUtils.property(thatLocator, "subjectCoverage", rhsSubjectCoverage), lhsSubjectCoverage, rhsSubjectCoverage, this.isSetSubjectCoverage(), that.isSetSubjectCoverage())) { return false; } } { List<VirtualCoverageType> lhsVirtualCoverage; lhsVirtualCoverage = (this.isSetVirtualCoverage()?this.getVirtualCoverage():null); List<VirtualCoverageType> rhsVirtualCoverage; rhsVirtualCoverage = (that.isSetVirtualCoverage()?that.getVirtualCoverage():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "virtualCoverage", lhsVirtualCoverage), LocatorUtils.property(thatLocator, "virtualCoverage", rhsVirtualCoverage), lhsVirtualCoverage, rhsVirtualCoverage, this.isSetVirtualCoverage(), that.isSetVirtualCoverage())) { return false; } } { List<TimePeriodType> lhsTemporalCoverage; lhsTemporalCoverage = (this.isSetTemporalCoverage()?this.getTemporalCoverage():null); List<TimePeriodType> rhsTemporalCoverage; rhsTemporalCoverage = (that.isSetTemporalCoverage()?that.getTemporalCoverage():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "temporalCoverage", lhsTemporalCoverage), LocatorUtils.property(thatLocator, "temporalCoverage", rhsTemporalCoverage), lhsTemporalCoverage, rhsTemporalCoverage, this.isSetTemporalCoverage(), that.isSetTemporalCoverage())) { return false; } } { List<PlaceType> lhsGeospatialCoverage; lhsGeospatialCoverage = (this.isSetGeospatialCoverage()?this.getGeospatialCoverage():null); List<PlaceType> rhsGeospatialCoverage; rhsGeospatialCoverage = (that.isSetGeospatialCoverage()?that.getGeospatialCoverage():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "geospatialCoverage", lhsGeospatialCoverage), LocatorUtils.property(thatLocator, "geospatialCoverage", rhsGeospatialCoverage), lhsGeospatialCoverage, rhsGeospatialCoverage, this.isSetGeospatialCoverage(), that.isSetGeospatialCoverage())) { return false; } } { List<RelatedResourcesType> lhsRelatedResource; lhsRelatedResource = (this.isSetRelatedResource()?this.getRelatedResource():null); List<RelatedResourcesType> rhsRelatedResource; rhsRelatedResource = (that.isSetRelatedResource()?that.getRelatedResource():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "relatedResource", lhsRelatedResource), LocatorUtils.property(thatLocator, "relatedResource", rhsRelatedResource), lhsRelatedResource, rhsRelatedResource, this.isSetRelatedResource(), that.isSetRelatedResource())) { return false; } } { ResourceManagementType lhsResourceManagement; lhsResourceManagement = this.getResourceManagement(); ResourceManagementType rhsResourceManagement; rhsResourceManagement = that.getResourceManagement(); if (!strategy.equals(LocatorUtils.property(thisLocator, "resourceManagement", lhsResourceManagement), LocatorUtils.property(thatLocator, "resourceManagement", rhsResourceManagement), lhsResourceManagement, rhsResourceManagement, this.isSetResourceManagement(), that.isSetResourceManagement())) { return false; } } { List<String> lhsCompliesWith; lhsCompliesWith = (this.isSetCompliesWith()?this.getCompliesWith():null); List<String> rhsCompliesWith; rhsCompliesWith = (that.isSetCompliesWith()?that.getCompliesWith():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "compliesWith", lhsCompliesWith), LocatorUtils.property(thatLocator, "compliesWith", rhsCompliesWith), lhsCompliesWith, rhsCompliesWith, this.isSetCompliesWith(), that.isSetCompliesWith())) { return false; } } return true; } public boolean equals(Object object) { final EqualsStrategy2 strategy = JAXBEqualsStrategy.INSTANCE; return equals(null, null, object, strategy); } public int hashCode(ObjectLocator locator, HashCodeStrategy2 strategy) { int currentHashCode = 1; { MetacardInfoType theMetacardInfo; theMetacardInfo = this.getMetacardInfo(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "metacardInfo", theMetacardInfo), currentHashCode, theMetacardInfo, this.isSetMetacardInfo()); } { List<CompoundResourceIdentifierType> theIdentifier; theIdentifier = (this.isSetIdentifier()?this.getIdentifier():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "identifier", theIdentifier), currentHashCode, theIdentifier, this.isSetIdentifier()); } { List<TitleType> theTitle; theTitle = (this.isSetTitle()?this.getTitle():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "title", theTitle), currentHashCode, theTitle, this.isSetTitle()); } { List<SubtitleType> theSubtitle; theSubtitle = (this.isSetSubtitle()?this.getSubtitle():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "subtitle", theSubtitle), currentHashCode, theSubtitle, this.isSetSubtitle()); } { DescriptionType theDescription; theDescription = this.getDescription(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "description", theDescription), currentHashCode, theDescription, this.isSetDescription()); } { List<CompoundLanguageIdentifierType> theLanguage; theLanguage = (this.isSetLanguage()?this.getLanguage():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "language", theLanguage), currentHashCode, theLanguage, this.isSetLanguage()); } { DatesType theDates; theDates = this.getDates(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "dates", theDates), currentHashCode, theDates, this.isSetDates()); } { RightsType theRights; theRights = this.getRights(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "rights", theRights), currentHashCode, theRights, this.isSetRights()); } { List<CompoundSourceIdentifierType> theSource; theSource = (this.isSetSource()?this.getSource():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "source", theSource), currentHashCode, theSource, this.isSetSource()); } { List<CompoundTypeIdentifierType> theType; theType = (this.isSetType()?this.getType():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "type", theType), currentHashCode, theType, this.isSetType()); } { List<JAXBElement<ContactInfoType>> theCreatorOrPublisherOrContributor; theCreatorOrPublisherOrContributor = (this.isSetCreatorOrPublisherOrContributor()?this.getCreatorOrPublisherOrContributor():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "creatorOrPublisherOrContributor", theCreatorOrPublisherOrContributor), currentHashCode, theCreatorOrPublisherOrContributor, this.isSetCreatorOrPublisherOrContributor()); } { FormatType theFormat; theFormat = this.getFormat(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "format", theFormat), currentHashCode, theFormat, this.isSetFormat()); } { List<SubjectType> theSubjectCoverage; theSubjectCoverage = (this.isSetSubjectCoverage()?this.getSubjectCoverage():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "subjectCoverage", theSubjectCoverage), currentHashCode, theSubjectCoverage, this.isSetSubjectCoverage()); } { List<VirtualCoverageType> theVirtualCoverage; theVirtualCoverage = (this.isSetVirtualCoverage()?this.getVirtualCoverage():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "virtualCoverage", theVirtualCoverage), currentHashCode, theVirtualCoverage, this.isSetVirtualCoverage()); } { List<TimePeriodType> theTemporalCoverage; theTemporalCoverage = (this.isSetTemporalCoverage()?this.getTemporalCoverage():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "temporalCoverage", theTemporalCoverage), currentHashCode, theTemporalCoverage, this.isSetTemporalCoverage()); } { List<PlaceType> theGeospatialCoverage; theGeospatialCoverage = (this.isSetGeospatialCoverage()?this.getGeospatialCoverage():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "geospatialCoverage", theGeospatialCoverage), currentHashCode, theGeospatialCoverage, this.isSetGeospatialCoverage()); } { List<RelatedResourcesType> theRelatedResource; theRelatedResource = (this.isSetRelatedResource()?this.getRelatedResource():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "relatedResource", theRelatedResource), currentHashCode, theRelatedResource, this.isSetRelatedResource()); } { ResourceManagementType theResourceManagement; theResourceManagement = this.getResourceManagement(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "resourceManagement", theResourceManagement), currentHashCode, theResourceManagement, this.isSetResourceManagement()); } { List<String> theCompliesWith; theCompliesWith = (this.isSetCompliesWith()?this.getCompliesWith():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "compliesWith", theCompliesWith), currentHashCode, theCompliesWith, this.isSetCompliesWith()); } return currentHashCode; } public int hashCode() { final HashCodeStrategy2 strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public Object clone() { return copyTo(createNewInstance()); } public Object copyTo(Object target) { final CopyStrategy2 strategy = JAXBCopyStrategy.INSTANCE; return copyTo(null, target, strategy); } public Object copyTo(ObjectLocator locator, Object target, CopyStrategy2 strategy) { final Object draftCopy = ((target == null)?createNewInstance():target); if (draftCopy instanceof ResourceType) { final ResourceType copy = ((ResourceType) draftCopy); { Boolean metacardInfoShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetMetacardInfo()); if (metacardInfoShouldBeCopiedAndSet == Boolean.TRUE) { MetacardInfoType sourceMetacardInfo; sourceMetacardInfo = this.getMetacardInfo(); MetacardInfoType copyMetacardInfo = ((MetacardInfoType) strategy.copy(LocatorUtils.property(locator, "metacardInfo", sourceMetacardInfo), sourceMetacardInfo, this.isSetMetacardInfo())); copy.setMetacardInfo(copyMetacardInfo); } else { if (metacardInfoShouldBeCopiedAndSet == Boolean.FALSE) { copy.metacardInfo = null; } } } { Boolean identifierShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetIdentifier()); if (identifierShouldBeCopiedAndSet == Boolean.TRUE) { List<CompoundResourceIdentifierType> sourceIdentifier; sourceIdentifier = (this.isSetIdentifier()?this.getIdentifier():null); @SuppressWarnings("unchecked") List<CompoundResourceIdentifierType> copyIdentifier = ((List<CompoundResourceIdentifierType> ) strategy.copy(LocatorUtils.property(locator, "identifier", sourceIdentifier), sourceIdentifier, this.isSetIdentifier())); copy.unsetIdentifier(); if (copyIdentifier!= null) { List<CompoundResourceIdentifierType> uniqueIdentifierl = copy.getIdentifier(); uniqueIdentifierl.addAll(copyIdentifier); } } else { if (identifierShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetIdentifier(); } } } { Boolean titleShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetTitle()); if (titleShouldBeCopiedAndSet == Boolean.TRUE) { List<TitleType> sourceTitle; sourceTitle = (this.isSetTitle()?this.getTitle():null); @SuppressWarnings("unchecked") List<TitleType> copyTitle = ((List<TitleType> ) strategy.copy(LocatorUtils.property(locator, "title", sourceTitle), sourceTitle, this.isSetTitle())); copy.unsetTitle(); if (copyTitle!= null) { List<TitleType> uniqueTitlel = copy.getTitle(); uniqueTitlel.addAll(copyTitle); } } else { if (titleShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetTitle(); } } } { Boolean subtitleShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetSubtitle()); if (subtitleShouldBeCopiedAndSet == Boolean.TRUE) { List<SubtitleType> sourceSubtitle; sourceSubtitle = (this.isSetSubtitle()?this.getSubtitle():null); @SuppressWarnings("unchecked") List<SubtitleType> copySubtitle = ((List<SubtitleType> ) strategy.copy(LocatorUtils.property(locator, "subtitle", sourceSubtitle), sourceSubtitle, this.isSetSubtitle())); copy.unsetSubtitle(); if (copySubtitle!= null) { List<SubtitleType> uniqueSubtitlel = copy.getSubtitle(); uniqueSubtitlel.addAll(copySubtitle); } } else { if (subtitleShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetSubtitle(); } } } { Boolean descriptionShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetDescription()); if (descriptionShouldBeCopiedAndSet == Boolean.TRUE) { DescriptionType sourceDescription; sourceDescription = this.getDescription(); DescriptionType copyDescription = ((DescriptionType) strategy.copy(LocatorUtils.property(locator, "description", sourceDescription), sourceDescription, this.isSetDescription())); copy.setDescription(copyDescription); } else { if (descriptionShouldBeCopiedAndSet == Boolean.FALSE) { copy.description = null; } } } { Boolean languageShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetLanguage()); if (languageShouldBeCopiedAndSet == Boolean.TRUE) { List<CompoundLanguageIdentifierType> sourceLanguage; sourceLanguage = (this.isSetLanguage()?this.getLanguage():null); @SuppressWarnings("unchecked") List<CompoundLanguageIdentifierType> copyLanguage = ((List<CompoundLanguageIdentifierType> ) strategy.copy(LocatorUtils.property(locator, "language", sourceLanguage), sourceLanguage, this.isSetLanguage())); copy.unsetLanguage(); if (copyLanguage!= null) { List<CompoundLanguageIdentifierType> uniqueLanguagel = copy.getLanguage(); uniqueLanguagel.addAll(copyLanguage); } } else { if (languageShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetLanguage(); } } } { Boolean datesShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetDates()); if (datesShouldBeCopiedAndSet == Boolean.TRUE) { DatesType sourceDates; sourceDates = this.getDates(); DatesType copyDates = ((DatesType) strategy.copy(LocatorUtils.property(locator, "dates", sourceDates), sourceDates, this.isSetDates())); copy.setDates(copyDates); } else { if (datesShouldBeCopiedAndSet == Boolean.FALSE) { copy.dates = null; } } } { Boolean rightsShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetRights()); if (rightsShouldBeCopiedAndSet == Boolean.TRUE) { RightsType sourceRights; sourceRights = this.getRights(); RightsType copyRights = ((RightsType) strategy.copy(LocatorUtils.property(locator, "rights", sourceRights), sourceRights, this.isSetRights())); copy.setRights(copyRights); } else { if (rightsShouldBeCopiedAndSet == Boolean.FALSE) { copy.rights = null; } } } { Boolean sourceShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetSource()); if (sourceShouldBeCopiedAndSet == Boolean.TRUE) { List<CompoundSourceIdentifierType> sourceSource; sourceSource = (this.isSetSource()?this.getSource():null); @SuppressWarnings("unchecked") List<CompoundSourceIdentifierType> copySource = ((List<CompoundSourceIdentifierType> ) strategy.copy(LocatorUtils.property(locator, "source", sourceSource), sourceSource, this.isSetSource())); copy.unsetSource(); if (copySource!= null) { List<CompoundSourceIdentifierType> uniqueSourcel = copy.getSource(); uniqueSourcel.addAll(copySource); } } else { if (sourceShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetSource(); } } } { Boolean typeShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetType()); if (typeShouldBeCopiedAndSet == Boolean.TRUE) { List<CompoundTypeIdentifierType> sourceType; sourceType = (this.isSetType()?this.getType():null); @SuppressWarnings("unchecked") List<CompoundTypeIdentifierType> copyType = ((List<CompoundTypeIdentifierType> ) strategy.copy(LocatorUtils.property(locator, "type", sourceType), sourceType, this.isSetType())); copy.unsetType(); if (copyType!= null) { List<CompoundTypeIdentifierType> uniqueTypel = copy.getType(); uniqueTypel.addAll(copyType); } } else { if (typeShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetType(); } } } { Boolean creatorOrPublisherOrContributorShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetCreatorOrPublisherOrContributor()); if (creatorOrPublisherOrContributorShouldBeCopiedAndSet == Boolean.TRUE) { List<JAXBElement<ContactInfoType>> sourceCreatorOrPublisherOrContributor; sourceCreatorOrPublisherOrContributor = (this.isSetCreatorOrPublisherOrContributor()?this.getCreatorOrPublisherOrContributor():null); @SuppressWarnings("unchecked") List<JAXBElement<ContactInfoType>> copyCreatorOrPublisherOrContributor = ((List<JAXBElement<ContactInfoType>> ) strategy.copy(LocatorUtils.property(locator, "creatorOrPublisherOrContributor", sourceCreatorOrPublisherOrContributor), sourceCreatorOrPublisherOrContributor, this.isSetCreatorOrPublisherOrContributor())); copy.unsetCreatorOrPublisherOrContributor(); if (copyCreatorOrPublisherOrContributor!= null) { List<JAXBElement<ContactInfoType>> uniqueCreatorOrPublisherOrContributorl = copy.getCreatorOrPublisherOrContributor(); uniqueCreatorOrPublisherOrContributorl.addAll(copyCreatorOrPublisherOrContributor); } } else { if (creatorOrPublisherOrContributorShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetCreatorOrPublisherOrContributor(); } } } { Boolean formatShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetFormat()); if (formatShouldBeCopiedAndSet == Boolean.TRUE) { FormatType sourceFormat; sourceFormat = this.getFormat(); FormatType copyFormat = ((FormatType) strategy.copy(LocatorUtils.property(locator, "format", sourceFormat), sourceFormat, this.isSetFormat())); copy.setFormat(copyFormat); } else { if (formatShouldBeCopiedAndSet == Boolean.FALSE) { copy.format = null; } } } { Boolean subjectCoverageShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetSubjectCoverage()); if (subjectCoverageShouldBeCopiedAndSet == Boolean.TRUE) { List<SubjectType> sourceSubjectCoverage; sourceSubjectCoverage = (this.isSetSubjectCoverage()?this.getSubjectCoverage():null); @SuppressWarnings("unchecked") List<SubjectType> copySubjectCoverage = ((List<SubjectType> ) strategy.copy(LocatorUtils.property(locator, "subjectCoverage", sourceSubjectCoverage), sourceSubjectCoverage, this.isSetSubjectCoverage())); copy.unsetSubjectCoverage(); if (copySubjectCoverage!= null) { List<SubjectType> uniqueSubjectCoveragel = copy.getSubjectCoverage(); uniqueSubjectCoveragel.addAll(copySubjectCoverage); } } else { if (subjectCoverageShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetSubjectCoverage(); } } } { Boolean virtualCoverageShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetVirtualCoverage()); if (virtualCoverageShouldBeCopiedAndSet == Boolean.TRUE) { List<VirtualCoverageType> sourceVirtualCoverage; sourceVirtualCoverage = (this.isSetVirtualCoverage()?this.getVirtualCoverage():null); @SuppressWarnings("unchecked") List<VirtualCoverageType> copyVirtualCoverage = ((List<VirtualCoverageType> ) strategy.copy(LocatorUtils.property(locator, "virtualCoverage", sourceVirtualCoverage), sourceVirtualCoverage, this.isSetVirtualCoverage())); copy.unsetVirtualCoverage(); if (copyVirtualCoverage!= null) { List<VirtualCoverageType> uniqueVirtualCoveragel = copy.getVirtualCoverage(); uniqueVirtualCoveragel.addAll(copyVirtualCoverage); } } else { if (virtualCoverageShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetVirtualCoverage(); } } } { Boolean temporalCoverageShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetTemporalCoverage()); if (temporalCoverageShouldBeCopiedAndSet == Boolean.TRUE) { List<TimePeriodType> sourceTemporalCoverage; sourceTemporalCoverage = (this.isSetTemporalCoverage()?this.getTemporalCoverage():null); @SuppressWarnings("unchecked") List<TimePeriodType> copyTemporalCoverage = ((List<TimePeriodType> ) strategy.copy(LocatorUtils.property(locator, "temporalCoverage", sourceTemporalCoverage), sourceTemporalCoverage, this.isSetTemporalCoverage())); copy.unsetTemporalCoverage(); if (copyTemporalCoverage!= null) { List<TimePeriodType> uniqueTemporalCoveragel = copy.getTemporalCoverage(); uniqueTemporalCoveragel.addAll(copyTemporalCoverage); } } else { if (temporalCoverageShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetTemporalCoverage(); } } } { Boolean geospatialCoverageShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetGeospatialCoverage()); if (geospatialCoverageShouldBeCopiedAndSet == Boolean.TRUE) { List<PlaceType> sourceGeospatialCoverage; sourceGeospatialCoverage = (this.isSetGeospatialCoverage()?this.getGeospatialCoverage():null); @SuppressWarnings("unchecked") List<PlaceType> copyGeospatialCoverage = ((List<PlaceType> ) strategy.copy(LocatorUtils.property(locator, "geospatialCoverage", sourceGeospatialCoverage), sourceGeospatialCoverage, this.isSetGeospatialCoverage())); copy.unsetGeospatialCoverage(); if (copyGeospatialCoverage!= null) { List<PlaceType> uniqueGeospatialCoveragel = copy.getGeospatialCoverage(); uniqueGeospatialCoveragel.addAll(copyGeospatialCoverage); } } else { if (geospatialCoverageShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetGeospatialCoverage(); } } } { Boolean relatedResourceShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetRelatedResource()); if (relatedResourceShouldBeCopiedAndSet == Boolean.TRUE) { List<RelatedResourcesType> sourceRelatedResource; sourceRelatedResource = (this.isSetRelatedResource()?this.getRelatedResource():null); @SuppressWarnings("unchecked") List<RelatedResourcesType> copyRelatedResource = ((List<RelatedResourcesType> ) strategy.copy(LocatorUtils.property(locator, "relatedResource", sourceRelatedResource), sourceRelatedResource, this.isSetRelatedResource())); copy.unsetRelatedResource(); if (copyRelatedResource!= null) { List<RelatedResourcesType> uniqueRelatedResourcel = copy.getRelatedResource(); uniqueRelatedResourcel.addAll(copyRelatedResource); } } else { if (relatedResourceShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetRelatedResource(); } } } { Boolean resourceManagementShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetResourceManagement()); if (resourceManagementShouldBeCopiedAndSet == Boolean.TRUE) { ResourceManagementType sourceResourceManagement; sourceResourceManagement = this.getResourceManagement(); ResourceManagementType copyResourceManagement = ((ResourceManagementType) strategy.copy(LocatorUtils.property(locator, "resourceManagement", sourceResourceManagement), sourceResourceManagement, this.isSetResourceManagement())); copy.setResourceManagement(copyResourceManagement); } else { if (resourceManagementShouldBeCopiedAndSet == Boolean.FALSE) { copy.resourceManagement = null; } } } { Boolean compliesWithShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetCompliesWith()); if (compliesWithShouldBeCopiedAndSet == Boolean.TRUE) { List<String> sourceCompliesWith; sourceCompliesWith = (this.isSetCompliesWith()?this.getCompliesWith():null); @SuppressWarnings("unchecked") List<String> copyCompliesWith = ((List<String> ) strategy.copy(LocatorUtils.property(locator, "compliesWith", sourceCompliesWith), sourceCompliesWith, this.isSetCompliesWith())); copy.unsetCompliesWith(); if (copyCompliesWith!= null) { List<String> uniqueCompliesWithl = copy.getCompliesWith(); uniqueCompliesWithl.addAll(copyCompliesWith); } } else { if (compliesWithShouldBeCopiedAndSet == Boolean.FALSE) { copy.unsetCompliesWith(); } } } } return draftCopy; } public Object createNewInstance() { return new ResourceType(); } public void mergeFrom(Object left, Object right) { final MergeStrategy2 strategy = JAXBMergeStrategy.INSTANCE; mergeFrom(null, null, left, right, strategy); } public void mergeFrom(ObjectLocator leftLocator, ObjectLocator rightLocator, Object left, Object right, MergeStrategy2 strategy) { if (right instanceof ResourceType) { final ResourceType target = this; final ResourceType leftObject = ((ResourceType) left); final ResourceType rightObject = ((ResourceType) right); { Boolean metacardInfoShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetMetacardInfo(), rightObject.isSetMetacardInfo()); if (metacardInfoShouldBeMergedAndSet == Boolean.TRUE) { MetacardInfoType lhsMetacardInfo; lhsMetacardInfo = leftObject.getMetacardInfo(); MetacardInfoType rhsMetacardInfo; rhsMetacardInfo = rightObject.getMetacardInfo(); MetacardInfoType mergedMetacardInfo = ((MetacardInfoType) strategy.merge(LocatorUtils.property(leftLocator, "metacardInfo", lhsMetacardInfo), LocatorUtils.property(rightLocator, "metacardInfo", rhsMetacardInfo), lhsMetacardInfo, rhsMetacardInfo, leftObject.isSetMetacardInfo(), rightObject.isSetMetacardInfo())); target.setMetacardInfo(mergedMetacardInfo); } else { if (metacardInfoShouldBeMergedAndSet == Boolean.FALSE) { target.metacardInfo = null; } } } { Boolean identifierShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetIdentifier(), rightObject.isSetIdentifier()); if (identifierShouldBeMergedAndSet == Boolean.TRUE) { List<CompoundResourceIdentifierType> lhsIdentifier; lhsIdentifier = (leftObject.isSetIdentifier()?leftObject.getIdentifier():null); List<CompoundResourceIdentifierType> rhsIdentifier; rhsIdentifier = (rightObject.isSetIdentifier()?rightObject.getIdentifier():null); List<CompoundResourceIdentifierType> mergedIdentifier = ((List<CompoundResourceIdentifierType> ) strategy.merge(LocatorUtils.property(leftLocator, "identifier", lhsIdentifier), LocatorUtils.property(rightLocator, "identifier", rhsIdentifier), lhsIdentifier, rhsIdentifier, leftObject.isSetIdentifier(), rightObject.isSetIdentifier())); target.unsetIdentifier(); if (mergedIdentifier!= null) { List<CompoundResourceIdentifierType> uniqueIdentifierl = target.getIdentifier(); uniqueIdentifierl.addAll(mergedIdentifier); } } else { if (identifierShouldBeMergedAndSet == Boolean.FALSE) { target.unsetIdentifier(); } } } { Boolean titleShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetTitle(), rightObject.isSetTitle()); if (titleShouldBeMergedAndSet == Boolean.TRUE) { List<TitleType> lhsTitle; lhsTitle = (leftObject.isSetTitle()?leftObject.getTitle():null); List<TitleType> rhsTitle; rhsTitle = (rightObject.isSetTitle()?rightObject.getTitle():null); List<TitleType> mergedTitle = ((List<TitleType> ) strategy.merge(LocatorUtils.property(leftLocator, "title", lhsTitle), LocatorUtils.property(rightLocator, "title", rhsTitle), lhsTitle, rhsTitle, leftObject.isSetTitle(), rightObject.isSetTitle())); target.unsetTitle(); if (mergedTitle!= null) { List<TitleType> uniqueTitlel = target.getTitle(); uniqueTitlel.addAll(mergedTitle); } } else { if (titleShouldBeMergedAndSet == Boolean.FALSE) { target.unsetTitle(); } } } { Boolean subtitleShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetSubtitle(), rightObject.isSetSubtitle()); if (subtitleShouldBeMergedAndSet == Boolean.TRUE) { List<SubtitleType> lhsSubtitle; lhsSubtitle = (leftObject.isSetSubtitle()?leftObject.getSubtitle():null); List<SubtitleType> rhsSubtitle; rhsSubtitle = (rightObject.isSetSubtitle()?rightObject.getSubtitle():null); List<SubtitleType> mergedSubtitle = ((List<SubtitleType> ) strategy.merge(LocatorUtils.property(leftLocator, "subtitle", lhsSubtitle), LocatorUtils.property(rightLocator, "subtitle", rhsSubtitle), lhsSubtitle, rhsSubtitle, leftObject.isSetSubtitle(), rightObject.isSetSubtitle())); target.unsetSubtitle(); if (mergedSubtitle!= null) { List<SubtitleType> uniqueSubtitlel = target.getSubtitle(); uniqueSubtitlel.addAll(mergedSubtitle); } } else { if (subtitleShouldBeMergedAndSet == Boolean.FALSE) { target.unsetSubtitle(); } } } { Boolean descriptionShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetDescription(), rightObject.isSetDescription()); if (descriptionShouldBeMergedAndSet == Boolean.TRUE) { DescriptionType lhsDescription; lhsDescription = leftObject.getDescription(); DescriptionType rhsDescription; rhsDescription = rightObject.getDescription(); DescriptionType mergedDescription = ((DescriptionType) strategy.merge(LocatorUtils.property(leftLocator, "description", lhsDescription), LocatorUtils.property(rightLocator, "description", rhsDescription), lhsDescription, rhsDescription, leftObject.isSetDescription(), rightObject.isSetDescription())); target.setDescription(mergedDescription); } else { if (descriptionShouldBeMergedAndSet == Boolean.FALSE) { target.description = null; } } } { Boolean languageShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetLanguage(), rightObject.isSetLanguage()); if (languageShouldBeMergedAndSet == Boolean.TRUE) { List<CompoundLanguageIdentifierType> lhsLanguage; lhsLanguage = (leftObject.isSetLanguage()?leftObject.getLanguage():null); List<CompoundLanguageIdentifierType> rhsLanguage; rhsLanguage = (rightObject.isSetLanguage()?rightObject.getLanguage():null); List<CompoundLanguageIdentifierType> mergedLanguage = ((List<CompoundLanguageIdentifierType> ) strategy.merge(LocatorUtils.property(leftLocator, "language", lhsLanguage), LocatorUtils.property(rightLocator, "language", rhsLanguage), lhsLanguage, rhsLanguage, leftObject.isSetLanguage(), rightObject.isSetLanguage())); target.unsetLanguage(); if (mergedLanguage!= null) { List<CompoundLanguageIdentifierType> uniqueLanguagel = target.getLanguage(); uniqueLanguagel.addAll(mergedLanguage); } } else { if (languageShouldBeMergedAndSet == Boolean.FALSE) { target.unsetLanguage(); } } } { Boolean datesShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetDates(), rightObject.isSetDates()); if (datesShouldBeMergedAndSet == Boolean.TRUE) { DatesType lhsDates; lhsDates = leftObject.getDates(); DatesType rhsDates; rhsDates = rightObject.getDates(); DatesType mergedDates = ((DatesType) strategy.merge(LocatorUtils.property(leftLocator, "dates", lhsDates), LocatorUtils.property(rightLocator, "dates", rhsDates), lhsDates, rhsDates, leftObject.isSetDates(), rightObject.isSetDates())); target.setDates(mergedDates); } else { if (datesShouldBeMergedAndSet == Boolean.FALSE) { target.dates = null; } } } { Boolean rightsShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetRights(), rightObject.isSetRights()); if (rightsShouldBeMergedAndSet == Boolean.TRUE) { RightsType lhsRights; lhsRights = leftObject.getRights(); RightsType rhsRights; rhsRights = rightObject.getRights(); RightsType mergedRights = ((RightsType) strategy.merge(LocatorUtils.property(leftLocator, "rights", lhsRights), LocatorUtils.property(rightLocator, "rights", rhsRights), lhsRights, rhsRights, leftObject.isSetRights(), rightObject.isSetRights())); target.setRights(mergedRights); } else { if (rightsShouldBeMergedAndSet == Boolean.FALSE) { target.rights = null; } } } { Boolean sourceShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetSource(), rightObject.isSetSource()); if (sourceShouldBeMergedAndSet == Boolean.TRUE) { List<CompoundSourceIdentifierType> lhsSource; lhsSource = (leftObject.isSetSource()?leftObject.getSource():null); List<CompoundSourceIdentifierType> rhsSource; rhsSource = (rightObject.isSetSource()?rightObject.getSource():null); List<CompoundSourceIdentifierType> mergedSource = ((List<CompoundSourceIdentifierType> ) strategy.merge(LocatorUtils.property(leftLocator, "source", lhsSource), LocatorUtils.property(rightLocator, "source", rhsSource), lhsSource, rhsSource, leftObject.isSetSource(), rightObject.isSetSource())); target.unsetSource(); if (mergedSource!= null) { List<CompoundSourceIdentifierType> uniqueSourcel = target.getSource(); uniqueSourcel.addAll(mergedSource); } } else { if (sourceShouldBeMergedAndSet == Boolean.FALSE) { target.unsetSource(); } } } { Boolean typeShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetType(), rightObject.isSetType()); if (typeShouldBeMergedAndSet == Boolean.TRUE) { List<CompoundTypeIdentifierType> lhsType; lhsType = (leftObject.isSetType()?leftObject.getType():null); List<CompoundTypeIdentifierType> rhsType; rhsType = (rightObject.isSetType()?rightObject.getType():null); List<CompoundTypeIdentifierType> mergedType = ((List<CompoundTypeIdentifierType> ) strategy.merge(LocatorUtils.property(leftLocator, "type", lhsType), LocatorUtils.property(rightLocator, "type", rhsType), lhsType, rhsType, leftObject.isSetType(), rightObject.isSetType())); target.unsetType(); if (mergedType!= null) { List<CompoundTypeIdentifierType> uniqueTypel = target.getType(); uniqueTypel.addAll(mergedType); } } else { if (typeShouldBeMergedAndSet == Boolean.FALSE) { target.unsetType(); } } } { Boolean creatorOrPublisherOrContributorShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetCreatorOrPublisherOrContributor(), rightObject.isSetCreatorOrPublisherOrContributor()); if (creatorOrPublisherOrContributorShouldBeMergedAndSet == Boolean.TRUE) { List<JAXBElement<ContactInfoType>> lhsCreatorOrPublisherOrContributor; lhsCreatorOrPublisherOrContributor = (leftObject.isSetCreatorOrPublisherOrContributor()?leftObject.getCreatorOrPublisherOrContributor():null); List<JAXBElement<ContactInfoType>> rhsCreatorOrPublisherOrContributor; rhsCreatorOrPublisherOrContributor = (rightObject.isSetCreatorOrPublisherOrContributor()?rightObject.getCreatorOrPublisherOrContributor():null); List<JAXBElement<ContactInfoType>> mergedCreatorOrPublisherOrContributor = ((List<JAXBElement<ContactInfoType>> ) strategy.merge(LocatorUtils.property(leftLocator, "creatorOrPublisherOrContributor", lhsCreatorOrPublisherOrContributor), LocatorUtils.property(rightLocator, "creatorOrPublisherOrContributor", rhsCreatorOrPublisherOrContributor), lhsCreatorOrPublisherOrContributor, rhsCreatorOrPublisherOrContributor, leftObject.isSetCreatorOrPublisherOrContributor(), rightObject.isSetCreatorOrPublisherOrContributor())); target.unsetCreatorOrPublisherOrContributor(); if (mergedCreatorOrPublisherOrContributor!= null) { List<JAXBElement<ContactInfoType>> uniqueCreatorOrPublisherOrContributorl = target.getCreatorOrPublisherOrContributor(); uniqueCreatorOrPublisherOrContributorl.addAll(mergedCreatorOrPublisherOrContributor); } } else { if (creatorOrPublisherOrContributorShouldBeMergedAndSet == Boolean.FALSE) { target.unsetCreatorOrPublisherOrContributor(); } } } { Boolean formatShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetFormat(), rightObject.isSetFormat()); if (formatShouldBeMergedAndSet == Boolean.TRUE) { FormatType lhsFormat; lhsFormat = leftObject.getFormat(); FormatType rhsFormat; rhsFormat = rightObject.getFormat(); FormatType mergedFormat = ((FormatType) strategy.merge(LocatorUtils.property(leftLocator, "format", lhsFormat), LocatorUtils.property(rightLocator, "format", rhsFormat), lhsFormat, rhsFormat, leftObject.isSetFormat(), rightObject.isSetFormat())); target.setFormat(mergedFormat); } else { if (formatShouldBeMergedAndSet == Boolean.FALSE) { target.format = null; } } } { Boolean subjectCoverageShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetSubjectCoverage(), rightObject.isSetSubjectCoverage()); if (subjectCoverageShouldBeMergedAndSet == Boolean.TRUE) { List<SubjectType> lhsSubjectCoverage; lhsSubjectCoverage = (leftObject.isSetSubjectCoverage()?leftObject.getSubjectCoverage():null); List<SubjectType> rhsSubjectCoverage; rhsSubjectCoverage = (rightObject.isSetSubjectCoverage()?rightObject.getSubjectCoverage():null); List<SubjectType> mergedSubjectCoverage = ((List<SubjectType> ) strategy.merge(LocatorUtils.property(leftLocator, "subjectCoverage", lhsSubjectCoverage), LocatorUtils.property(rightLocator, "subjectCoverage", rhsSubjectCoverage), lhsSubjectCoverage, rhsSubjectCoverage, leftObject.isSetSubjectCoverage(), rightObject.isSetSubjectCoverage())); target.unsetSubjectCoverage(); if (mergedSubjectCoverage!= null) { List<SubjectType> uniqueSubjectCoveragel = target.getSubjectCoverage(); uniqueSubjectCoveragel.addAll(mergedSubjectCoverage); } } else { if (subjectCoverageShouldBeMergedAndSet == Boolean.FALSE) { target.unsetSubjectCoverage(); } } } { Boolean virtualCoverageShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetVirtualCoverage(), rightObject.isSetVirtualCoverage()); if (virtualCoverageShouldBeMergedAndSet == Boolean.TRUE) { List<VirtualCoverageType> lhsVirtualCoverage; lhsVirtualCoverage = (leftObject.isSetVirtualCoverage()?leftObject.getVirtualCoverage():null); List<VirtualCoverageType> rhsVirtualCoverage; rhsVirtualCoverage = (rightObject.isSetVirtualCoverage()?rightObject.getVirtualCoverage():null); List<VirtualCoverageType> mergedVirtualCoverage = ((List<VirtualCoverageType> ) strategy.merge(LocatorUtils.property(leftLocator, "virtualCoverage", lhsVirtualCoverage), LocatorUtils.property(rightLocator, "virtualCoverage", rhsVirtualCoverage), lhsVirtualCoverage, rhsVirtualCoverage, leftObject.isSetVirtualCoverage(), rightObject.isSetVirtualCoverage())); target.unsetVirtualCoverage(); if (mergedVirtualCoverage!= null) { List<VirtualCoverageType> uniqueVirtualCoveragel = target.getVirtualCoverage(); uniqueVirtualCoveragel.addAll(mergedVirtualCoverage); } } else { if (virtualCoverageShouldBeMergedAndSet == Boolean.FALSE) { target.unsetVirtualCoverage(); } } } { Boolean temporalCoverageShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetTemporalCoverage(), rightObject.isSetTemporalCoverage()); if (temporalCoverageShouldBeMergedAndSet == Boolean.TRUE) { List<TimePeriodType> lhsTemporalCoverage; lhsTemporalCoverage = (leftObject.isSetTemporalCoverage()?leftObject.getTemporalCoverage():null); List<TimePeriodType> rhsTemporalCoverage; rhsTemporalCoverage = (rightObject.isSetTemporalCoverage()?rightObject.getTemporalCoverage():null); List<TimePeriodType> mergedTemporalCoverage = ((List<TimePeriodType> ) strategy.merge(LocatorUtils.property(leftLocator, "temporalCoverage", lhsTemporalCoverage), LocatorUtils.property(rightLocator, "temporalCoverage", rhsTemporalCoverage), lhsTemporalCoverage, rhsTemporalCoverage, leftObject.isSetTemporalCoverage(), rightObject.isSetTemporalCoverage())); target.unsetTemporalCoverage(); if (mergedTemporalCoverage!= null) { List<TimePeriodType> uniqueTemporalCoveragel = target.getTemporalCoverage(); uniqueTemporalCoveragel.addAll(mergedTemporalCoverage); } } else { if (temporalCoverageShouldBeMergedAndSet == Boolean.FALSE) { target.unsetTemporalCoverage(); } } } { Boolean geospatialCoverageShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetGeospatialCoverage(), rightObject.isSetGeospatialCoverage()); if (geospatialCoverageShouldBeMergedAndSet == Boolean.TRUE) { List<PlaceType> lhsGeospatialCoverage; lhsGeospatialCoverage = (leftObject.isSetGeospatialCoverage()?leftObject.getGeospatialCoverage():null); List<PlaceType> rhsGeospatialCoverage; rhsGeospatialCoverage = (rightObject.isSetGeospatialCoverage()?rightObject.getGeospatialCoverage():null); List<PlaceType> mergedGeospatialCoverage = ((List<PlaceType> ) strategy.merge(LocatorUtils.property(leftLocator, "geospatialCoverage", lhsGeospatialCoverage), LocatorUtils.property(rightLocator, "geospatialCoverage", rhsGeospatialCoverage), lhsGeospatialCoverage, rhsGeospatialCoverage, leftObject.isSetGeospatialCoverage(), rightObject.isSetGeospatialCoverage())); target.unsetGeospatialCoverage(); if (mergedGeospatialCoverage!= null) { List<PlaceType> uniqueGeospatialCoveragel = target.getGeospatialCoverage(); uniqueGeospatialCoveragel.addAll(mergedGeospatialCoverage); } } else { if (geospatialCoverageShouldBeMergedAndSet == Boolean.FALSE) { target.unsetGeospatialCoverage(); } } } { Boolean relatedResourceShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetRelatedResource(), rightObject.isSetRelatedResource()); if (relatedResourceShouldBeMergedAndSet == Boolean.TRUE) { List<RelatedResourcesType> lhsRelatedResource; lhsRelatedResource = (leftObject.isSetRelatedResource()?leftObject.getRelatedResource():null); List<RelatedResourcesType> rhsRelatedResource; rhsRelatedResource = (rightObject.isSetRelatedResource()?rightObject.getRelatedResource():null); List<RelatedResourcesType> mergedRelatedResource = ((List<RelatedResourcesType> ) strategy.merge(LocatorUtils.property(leftLocator, "relatedResource", lhsRelatedResource), LocatorUtils.property(rightLocator, "relatedResource", rhsRelatedResource), lhsRelatedResource, rhsRelatedResource, leftObject.isSetRelatedResource(), rightObject.isSetRelatedResource())); target.unsetRelatedResource(); if (mergedRelatedResource!= null) { List<RelatedResourcesType> uniqueRelatedResourcel = target.getRelatedResource(); uniqueRelatedResourcel.addAll(mergedRelatedResource); } } else { if (relatedResourceShouldBeMergedAndSet == Boolean.FALSE) { target.unsetRelatedResource(); } } } { Boolean resourceManagementShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetResourceManagement(), rightObject.isSetResourceManagement()); if (resourceManagementShouldBeMergedAndSet == Boolean.TRUE) { ResourceManagementType lhsResourceManagement; lhsResourceManagement = leftObject.getResourceManagement(); ResourceManagementType rhsResourceManagement; rhsResourceManagement = rightObject.getResourceManagement(); ResourceManagementType mergedResourceManagement = ((ResourceManagementType) strategy.merge(LocatorUtils.property(leftLocator, "resourceManagement", lhsResourceManagement), LocatorUtils.property(rightLocator, "resourceManagement", rhsResourceManagement), lhsResourceManagement, rhsResourceManagement, leftObject.isSetResourceManagement(), rightObject.isSetResourceManagement())); target.setResourceManagement(mergedResourceManagement); } else { if (resourceManagementShouldBeMergedAndSet == Boolean.FALSE) { target.resourceManagement = null; } } } { Boolean compliesWithShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetCompliesWith(), rightObject.isSetCompliesWith()); if (compliesWithShouldBeMergedAndSet == Boolean.TRUE) { List<String> lhsCompliesWith; lhsCompliesWith = (leftObject.isSetCompliesWith()?leftObject.getCompliesWith():null); List<String> rhsCompliesWith; rhsCompliesWith = (rightObject.isSetCompliesWith()?rightObject.getCompliesWith():null); List<String> mergedCompliesWith = ((List<String> ) strategy.merge(LocatorUtils.property(leftLocator, "compliesWith", lhsCompliesWith), LocatorUtils.property(rightLocator, "compliesWith", rhsCompliesWith), lhsCompliesWith, rhsCompliesWith, leftObject.isSetCompliesWith(), rightObject.isSetCompliesWith())); target.unsetCompliesWith(); if (mergedCompliesWith!= null) { List<String> uniqueCompliesWithl = target.getCompliesWith(); uniqueCompliesWithl.addAll(mergedCompliesWith); } } else { if (compliesWithShouldBeMergedAndSet == Boolean.FALSE) { target.unsetCompliesWith(); } } } } } public void setIdentifier(List<CompoundResourceIdentifierType> value) { this.identifier = null; if (value!= null) { List<CompoundResourceIdentifierType> draftl = this.getIdentifier(); draftl.addAll(value); } } public void setTitle(List<TitleType> value) { this.title = null; if (value!= null) { List<TitleType> draftl = this.getTitle(); draftl.addAll(value); } } public void setSubtitle(List<SubtitleType> value) { this.subtitle = null; if (value!= null) { List<SubtitleType> draftl = this.getSubtitle(); draftl.addAll(value); } } public void setLanguage(List<CompoundLanguageIdentifierType> value) { this.language = null; if (value!= null) { List<CompoundLanguageIdentifierType> draftl = this.getLanguage(); draftl.addAll(value); } } public void setSource(List<CompoundSourceIdentifierType> value) { this.source = null; if (value!= null) { List<CompoundSourceIdentifierType> draftl = this.getSource(); draftl.addAll(value); } } public void setType(List<CompoundTypeIdentifierType> value) { this.type = null; if (value!= null) { List<CompoundTypeIdentifierType> draftl = this.getType(); draftl.addAll(value); } } public void setCreatorOrPublisherOrContributor(List<JAXBElement<ContactInfoType>> value) { this.creatorOrPublisherOrContributor = null; if (value!= null) { List<JAXBElement<ContactInfoType>> draftl = this.getCreatorOrPublisherOrContributor(); draftl.addAll(value); } } public void setSubjectCoverage(List<SubjectType> value) { this.subjectCoverage = null; if (value!= null) { List<SubjectType> draftl = this.getSubjectCoverage(); draftl.addAll(value); } } public void setVirtualCoverage(List<VirtualCoverageType> value) { this.virtualCoverage = null; if (value!= null) { List<VirtualCoverageType> draftl = this.getVirtualCoverage(); draftl.addAll(value); } } public void setTemporalCoverage(List<TimePeriodType> value) { this.temporalCoverage = null; if (value!= null) { List<TimePeriodType> draftl = this.getTemporalCoverage(); draftl.addAll(value); } } public void setGeospatialCoverage(List<PlaceType> value) { this.geospatialCoverage = null; if (value!= null) { List<PlaceType> draftl = this.getGeospatialCoverage(); draftl.addAll(value); } } public void setRelatedResource(List<RelatedResourcesType> value) { this.relatedResource = null; if (value!= null) { List<RelatedResourcesType> draftl = this.getRelatedResource(); draftl.addAll(value); } } public void setCompliesWith(List<String> value) { this.compliesWith = null; if (value!= null) { List<String> draftl = this.getCompliesWith(); draftl.addAll(value); } } }