//
// 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.HashMap;
import java.util.Map;
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.XmlAnyAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.namespace.QName;
import org.jvnet.jaxb2_commons.lang.CopyStrategy2;
import org.jvnet.jaxb2_commons.lang.CopyTo2;
import org.jvnet.jaxb2_commons.lang.Equals2;
import org.jvnet.jaxb2_commons.lang.EqualsStrategy2;
import org.jvnet.jaxb2_commons.lang.HashCode2;
import org.jvnet.jaxb2_commons.lang.HashCodeStrategy2;
import org.jvnet.jaxb2_commons.lang.JAXBCopyStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBEqualsStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBHashCodeStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBMergeStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
import org.jvnet.jaxb2_commons.lang.MergeFrom2;
import org.jvnet.jaxb2_commons.lang.MergeStrategy2;
import org.jvnet.jaxb2_commons.lang.ToString2;
import org.jvnet.jaxb2_commons.lang.ToStringStrategy2;
import org.jvnet.jaxb2_commons.locator.ObjectLocator;
import org.jvnet.jaxb2_commons.locator.util.LocatorUtils;
/**
* <p>Java class for FormatType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="FormatType">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element ref="{urn:us:mil:ces:metadata:ddms:5}mimeType"/>
* <element ref="{urn:us:mil:ces:metadata:ddms:5}extent" minOccurs="0"/>
* <element ref="{urn:us:mil:ces:metadata:ddms:5}medium" minOccurs="0"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "FormatType", propOrder = {
"mimeType",
"extent",
"medium"
})
public class FormatType implements Serializable, Cloneable, CopyTo2, Equals2, HashCode2, MergeFrom2, ToString2
{
private final static long serialVersionUID = 1L;
@XmlElement(required = true)
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlSchemaType(name = "token")
@NotNull(message = "FormatType.mimeType {javax.validation.constraints.NotNull.message}")
@Size(min = 1)
protected String mimeType;
@Valid
protected QualifiedExtentValueType extent;
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlSchemaType(name = "token")
@Size(min = 1)
protected String medium;
@XmlAnyAttribute
private Map<QName, String> otherAttributes = new HashMap<QName, String>();
/**
* Gets the value of the mimeType property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getMimeType() {
return mimeType;
}
/**
* Sets the value of the mimeType property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setMimeType(String value) {
this.mimeType = value;
}
public boolean isSetMimeType() {
return (this.mimeType!= null);
}
/**
* Gets the value of the extent property.
*
* @return
* possible object is
* {@link QualifiedExtentValueType }
*
*/
public QualifiedExtentValueType getExtent() {
return extent;
}
/**
* Sets the value of the extent property.
*
* @param value
* allowed object is
* {@link QualifiedExtentValueType }
*
*/
public void setExtent(QualifiedExtentValueType value) {
this.extent = value;
}
public boolean isSetExtent() {
return (this.extent!= null);
}
/**
* Gets the value of the medium property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getMedium() {
return medium;
}
/**
* Sets the value of the medium property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setMedium(String value) {
this.medium = value;
}
public boolean isSetMedium() {
return (this.medium!= null);
}
/**
* Gets a map that contains attributes that aren't bound to any typed property on this class.
*
* <p>
* the map is keyed by the name of the attribute and
* the value is the string value of the attribute.
*
* the map returned by this method is live, and you can add new attribute
* by updating the map directly. Because of this design, there's no setter.
*
*
* @return
* always non-null
*/
public Map<QName, String> getOtherAttributes() {
return otherAttributes;
}
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) {
{
String theMimeType;
theMimeType = this.getMimeType();
strategy.appendField(locator, this, "mimeType", buffer, theMimeType, this.isSetMimeType());
}
{
QualifiedExtentValueType theExtent;
theExtent = this.getExtent();
strategy.appendField(locator, this, "extent", buffer, theExtent, this.isSetExtent());
}
{
String theMedium;
theMedium = this.getMedium();
strategy.appendField(locator, this, "medium", buffer, theMedium, this.isSetMedium());
}
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 FormatType that = ((FormatType) object);
{
String lhsMimeType;
lhsMimeType = this.getMimeType();
String rhsMimeType;
rhsMimeType = that.getMimeType();
if (!strategy.equals(LocatorUtils.property(thisLocator, "mimeType", lhsMimeType), LocatorUtils.property(thatLocator, "mimeType", rhsMimeType), lhsMimeType, rhsMimeType, this.isSetMimeType(), that.isSetMimeType())) {
return false;
}
}
{
QualifiedExtentValueType lhsExtent;
lhsExtent = this.getExtent();
QualifiedExtentValueType rhsExtent;
rhsExtent = that.getExtent();
if (!strategy.equals(LocatorUtils.property(thisLocator, "extent", lhsExtent), LocatorUtils.property(thatLocator, "extent", rhsExtent), lhsExtent, rhsExtent, this.isSetExtent(), that.isSetExtent())) {
return false;
}
}
{
String lhsMedium;
lhsMedium = this.getMedium();
String rhsMedium;
rhsMedium = that.getMedium();
if (!strategy.equals(LocatorUtils.property(thisLocator, "medium", lhsMedium), LocatorUtils.property(thatLocator, "medium", rhsMedium), lhsMedium, rhsMedium, this.isSetMedium(), that.isSetMedium())) {
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;
{
String theMimeType;
theMimeType = this.getMimeType();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "mimeType", theMimeType), currentHashCode, theMimeType, this.isSetMimeType());
}
{
QualifiedExtentValueType theExtent;
theExtent = this.getExtent();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "extent", theExtent), currentHashCode, theExtent, this.isSetExtent());
}
{
String theMedium;
theMedium = this.getMedium();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "medium", theMedium), currentHashCode, theMedium, this.isSetMedium());
}
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 FormatType) {
final FormatType copy = ((FormatType) draftCopy);
{
Boolean mimeTypeShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetMimeType());
if (mimeTypeShouldBeCopiedAndSet == Boolean.TRUE) {
String sourceMimeType;
sourceMimeType = this.getMimeType();
String copyMimeType = ((String) strategy.copy(LocatorUtils.property(locator, "mimeType", sourceMimeType), sourceMimeType, this.isSetMimeType()));
copy.setMimeType(copyMimeType);
} else {
if (mimeTypeShouldBeCopiedAndSet == Boolean.FALSE) {
copy.mimeType = null;
}
}
}
{
Boolean extentShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetExtent());
if (extentShouldBeCopiedAndSet == Boolean.TRUE) {
QualifiedExtentValueType sourceExtent;
sourceExtent = this.getExtent();
QualifiedExtentValueType copyExtent = ((QualifiedExtentValueType) strategy.copy(LocatorUtils.property(locator, "extent", sourceExtent), sourceExtent, this.isSetExtent()));
copy.setExtent(copyExtent);
} else {
if (extentShouldBeCopiedAndSet == Boolean.FALSE) {
copy.extent = null;
}
}
}
{
Boolean mediumShouldBeCopiedAndSet = strategy.shouldBeCopiedAndSet(locator, this.isSetMedium());
if (mediumShouldBeCopiedAndSet == Boolean.TRUE) {
String sourceMedium;
sourceMedium = this.getMedium();
String copyMedium = ((String) strategy.copy(LocatorUtils.property(locator, "medium", sourceMedium), sourceMedium, this.isSetMedium()));
copy.setMedium(copyMedium);
} else {
if (mediumShouldBeCopiedAndSet == Boolean.FALSE) {
copy.medium = null;
}
}
}
}
return draftCopy;
}
public Object createNewInstance() {
return new FormatType();
}
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 FormatType) {
final FormatType target = this;
final FormatType leftObject = ((FormatType) left);
final FormatType rightObject = ((FormatType) right);
{
Boolean mimeTypeShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetMimeType(), rightObject.isSetMimeType());
if (mimeTypeShouldBeMergedAndSet == Boolean.TRUE) {
String lhsMimeType;
lhsMimeType = leftObject.getMimeType();
String rhsMimeType;
rhsMimeType = rightObject.getMimeType();
String mergedMimeType = ((String) strategy.merge(LocatorUtils.property(leftLocator, "mimeType", lhsMimeType), LocatorUtils.property(rightLocator, "mimeType", rhsMimeType), lhsMimeType, rhsMimeType, leftObject.isSetMimeType(), rightObject.isSetMimeType()));
target.setMimeType(mergedMimeType);
} else {
if (mimeTypeShouldBeMergedAndSet == Boolean.FALSE) {
target.mimeType = null;
}
}
}
{
Boolean extentShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetExtent(), rightObject.isSetExtent());
if (extentShouldBeMergedAndSet == Boolean.TRUE) {
QualifiedExtentValueType lhsExtent;
lhsExtent = leftObject.getExtent();
QualifiedExtentValueType rhsExtent;
rhsExtent = rightObject.getExtent();
QualifiedExtentValueType mergedExtent = ((QualifiedExtentValueType) strategy.merge(LocatorUtils.property(leftLocator, "extent", lhsExtent), LocatorUtils.property(rightLocator, "extent", rhsExtent), lhsExtent, rhsExtent, leftObject.isSetExtent(), rightObject.isSetExtent()));
target.setExtent(mergedExtent);
} else {
if (extentShouldBeMergedAndSet == Boolean.FALSE) {
target.extent = null;
}
}
}
{
Boolean mediumShouldBeMergedAndSet = strategy.shouldBeMergedAndSet(leftLocator, rightLocator, leftObject.isSetMedium(), rightObject.isSetMedium());
if (mediumShouldBeMergedAndSet == Boolean.TRUE) {
String lhsMedium;
lhsMedium = leftObject.getMedium();
String rhsMedium;
rhsMedium = rightObject.getMedium();
String mergedMedium = ((String) strategy.merge(LocatorUtils.property(leftLocator, "medium", lhsMedium), LocatorUtils.property(rightLocator, "medium", rhsMedium), lhsMedium, rhsMedium, leftObject.isSetMedium(), rightObject.isSetMedium()));
target.setMedium(mergedMedium);
} else {
if (mediumShouldBeMergedAndSet == Boolean.FALSE) {
target.medium = null;
}
}
}
}
}
}