org.unece.cefact.namespaces.sbdh.Scope Maven / Gradle / Ivy
package org.unece.cefact.namespaces.sbdh;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nonnegative;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlType;
import com.helger.commons.annotation.CodingStyleguideUnaware;
import com.helger.commons.annotation.ReturnsMutableCopy;
import com.helger.commons.annotation.ReturnsMutableObject;
import com.helger.commons.equals.EqualsHelper;
import com.helger.commons.hashcode.HashCodeGenerator;
import com.helger.commons.lang.IExplicitlyCloneable;
import com.helger.commons.string.ToStringGenerator;
import com.helger.jaxb.adapter.JAXBHelper;
/**
* Java class for Scope complex type.
*
*
The following schema fragment specifies the expected content contained within this class.
*
*
* <complexType name="Scope">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <group ref="{http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader}ScopeAttributes"/>
* <element ref="{http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader}ScopeInformation" maxOccurs="unbounded" minOccurs="0"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
*
* This class was annotated by ph-jaxb22-plugin -Xph-annotate
* This class contains methods created by ph-jaxb22-plugin -Xph-equalshashcode
* This class contains methods created by ph-jaxb22-plugin -Xph-tostring
* This class contains methods created by ph-jaxb22-plugin -Xph-list-extension
* This class contains methods created by ph-jaxb22-plugin -Xph-cloneable2
* This class contains methods created by ph-jaxb22-plugin -Xph-value-extender
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Scope", propOrder = {
"type",
"instanceIdentifier",
"identifier",
"scopeInformation"
})
@CodingStyleguideUnaware
public class Scope implements Serializable, IExplicitlyCloneable
{
@XmlElement(name = "Type", required = true)
private String type;
@XmlElement(name = "InstanceIdentifier", required = true)
private String instanceIdentifier;
@XmlElement(name = "Identifier")
private String identifier;
@XmlElementRef(name = "ScopeInformation", namespace = "http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader", type = JAXBElement.class, required = false)
private List> scopeInformation;
/**
* Default constructor
* Note: automatically created by ph-jaxb22-plugin -Xph-value-extender
*
*/
public Scope() {
}
/**
* Gets the value of the type property.
*
* @return
* possible object is
* {@link String }
*
*/
@Nullable
public String getType() {
return type;
}
/**
* Sets the value of the type property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setType(
@Nullable
String value) {
this.type = value;
}
/**
* Gets the value of the instanceIdentifier property.
*
* @return
* possible object is
* {@link String }
*
*/
@Nullable
public String getInstanceIdentifier() {
return instanceIdentifier;
}
/**
* Sets the value of the instanceIdentifier property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setInstanceIdentifier(
@Nullable
String value) {
this.instanceIdentifier = value;
}
/**
* Gets the value of the identifier property.
*
* @return
* possible object is
* {@link String }
*
*/
@Nullable
public String getIdentifier() {
return identifier;
}
/**
* Sets the value of the identifier property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setIdentifier(
@Nullable
String value) {
this.identifier = value;
}
/**
* Gets the value of the scopeInformation property.
*
*
* 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 set
method for the scopeInformation property.
*
*
* For example, to add a new item, do as follows:
*
* getScopeInformation().add(newItem);
*
*
*
*
* Objects of the following type(s) are allowed in the list
* {@link JAXBElement }{@code <}{@link CorrelationInformation }{@code >}
* {@link JAXBElement }{@code <}{@link BusinessService }{@code >}
* {@link JAXBElement }{@code <}{@link Object }{@code >}
*
*
*/
@Nonnull
@ReturnsMutableObject("JAXB implementation style")
public List> getScopeInformation() {
if (scopeInformation == null) {
scopeInformation = new ArrayList>();
}
return this.scopeInformation;
}
/**
* Created by ph-jaxb22-plugin -Xph-equalshashcode
*
*/
@Override
public boolean equals(final Object o) {
if (o == this) {
return true;
}
if ((o == null)||(!getClass().equals(o.getClass()))) {
return false;
}
final Scope rhs = ((Scope) o);
if (!EqualsHelper.equals(identifier, rhs.identifier)) {
return false;
}
if (!EqualsHelper.equals(instanceIdentifier, rhs.instanceIdentifier)) {
return false;
}
if (!EqualsHelper.equalsCollection(scopeInformation, rhs.scopeInformation)) {
return false;
}
if (!EqualsHelper.equals(type, rhs.type)) {
return false;
}
return true;
}
/**
* Created by ph-jaxb22-plugin -Xph-equalshashcode
*
*/
@Override
public int hashCode() {
return new HashCodeGenerator(this).append(identifier).append(instanceIdentifier).append(scopeInformation).append(type).getHashCode();
}
/**
* Created by ph-jaxb22-plugin -Xph-tostring
*
*/
@Override
public String toString() {
return new ToStringGenerator(this).append("identifier", identifier).append("instanceIdentifier", instanceIdentifier).append("scopeInformation", scopeInformation).append("type", type).getToString();
}
/**
* Created by ph-jaxb22-plugin -Xph-list-extension
*
* @param aList
* The new list member to set. May be null
.
*/
public void setScopeInformation(
@Nullable
final List> aList) {
scopeInformation = aList;
}
/**
* Created by ph-jaxb22-plugin -Xph-list-extension
*
* @return
* true
if at least one item is contained, false
otherwise.
*/
public boolean hasScopeInformationEntries() {
return (!getScopeInformation().isEmpty());
}
/**
* Created by ph-jaxb22-plugin -Xph-list-extension
*
* @return
* true
if no item is contained, false
otherwise.
*/
public boolean hasNoScopeInformationEntries() {
return getScopeInformation().isEmpty();
}
/**
* Created by ph-jaxb22-plugin -Xph-list-extension
*
* @return
* The number of contained elements. Always ≥ 0.
*/
@Nonnegative
public int getScopeInformationCount() {
return getScopeInformation().size();
}
/**
* Created by ph-jaxb22-plugin -Xph-list-extension
*
* @param index
* The index to retrieve
* @return
* The element at the specified index. May be null
* @throws IndexOutOfBoundsException
* if the index is invalid!
*/
@Nullable
public JAXBElement> getScopeInformationAtIndex(
@Nonnegative
final int index)
throws IndexOutOfBoundsException
{
return getScopeInformation().get(index);
}
/**
* Created by ph-jaxb22-plugin -Xph-list-extension
*
* @param elem
* The element to be added. May not be null
.
*/
public void addScopeInformation(
@Nonnull
final JAXBElement> elem) {
getScopeInformation().add(elem);
}
/**
* This method clones all values from this
to the passed object. All data in the parameter object is overwritten!Created by ph-jaxb22-plugin -Xph-cloneable2
*
* @param ret
* The target object to clone to. May not be null
.
*/
public void cloneTo(
@Nonnull
Scope ret) {
ret.identifier = identifier;
ret.instanceIdentifier = instanceIdentifier;
if (scopeInformation == null) {
ret.scopeInformation = null;
} else {
List> retScopeInformation = new ArrayList>();
for (JAXBElement> aItem: getScopeInformation()) {
retScopeInformation.add(JAXBHelper.getClonedJAXBElement(aItem));
}
ret.scopeInformation = retScopeInformation;
}
ret.type = type;
}
/**
* Created by ph-jaxb22-plugin -Xph-cloneable2
*
* @return
* The cloned object. Never null
.
*/
@Nonnull
@ReturnsMutableCopy
@Override
public Scope clone() {
Scope ret = new Scope();
cloneTo(ret);
return ret;
}
}