com.helger.genericode.v04.Data Maven / Gradle / Ivy
Show all versions of ph-genericode Show documentation
package com.helger.genericode.v04;
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.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.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
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.string.ToStringGenerator;
/**
* Data type for a column.
*
* Java class for Data complex type.
*
*
The following schema fragment specifies the expected content contained within this class.
*
*
* <complexType name="Data">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="Annotation" type="{http://genericode.org/2006/ns/CodeList/0.4/}Annotation" minOccurs="0"/>
* <element name="Parameter" type="{http://genericode.org/2006/ns/CodeList/0.4/}DatatypeFacet" maxOccurs="unbounded" minOccurs="0"/>
* </sequence>
* <attribute name="Type" use="required" type="{http://www.w3.org/2001/XMLSchema}token" />
* <attribute name="DatatypeLibrary" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
* <attribute ref="{http://www.w3.org/XML/1998/namespace}lang"/>
* </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-cloneable
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Data", propOrder = {
"annotation",
"parameter"
})
@CodingStyleguideUnaware
public class Data implements Serializable, Cloneable
{
@XmlElement(name = "Annotation")
private Annotation annotation;
@XmlElement(name = "Parameter")
private List parameter;
@XmlAttribute(name = "Type", required = true)
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlSchemaType(name = "token")
private String type;
@XmlAttribute(name = "DatatypeLibrary")
@XmlSchemaType(name = "anyURI")
private String datatypeLibrary;
@XmlAttribute(name = "lang", namespace = "http://www.w3.org/XML/1998/namespace")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
@XmlSchemaType(name = "language")
private String lang;
/**
* Gets the value of the annotation property.
*
* @return
* possible object is
* {@link Annotation }
*
*/
@Nullable
public Annotation getAnnotation() {
return annotation;
}
/**
* Sets the value of the annotation property.
*
* @param value
* allowed object is
* {@link Annotation }
*
*/
public void setAnnotation(
@Nullable
Annotation value) {
this.annotation = value;
}
/**
* Gets the value of the parameter 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 parameter property.
*
*
* For example, to add a new item, do as follows:
*
* getParameter().add(newItem);
*
*
*
*
* Objects of the following type(s) are allowed in the list
* {@link DatatypeFacet }
*
*
*/
@Nonnull
@ReturnsMutableObject("JAXB implementation style")
public List getParameter() {
if (parameter == null) {
parameter = new ArrayList();
}
return this.parameter;
}
/**
* 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 datatypeLibrary property.
*
* @return
* possible object is
* {@link String }
*
*/
@Nullable
public String getDatatypeLibrary() {
return datatypeLibrary;
}
/**
* Sets the value of the datatypeLibrary property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setDatatypeLibrary(
@Nullable
String value) {
this.datatypeLibrary = value;
}
/**
* Language from which the data is taken or derived.
*
* @return
* possible object is
* {@link String }
*
*/
@Nullable
public String getLang() {
return lang;
}
/**
* Sets the value of the lang property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setLang(
@Nullable
String value) {
this.lang = value;
}
/**
* 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 Data rhs = ((Data) o);
if (!EqualsHelper.equals(annotation, rhs.annotation)) {
return false;
}
if (!EqualsHelper.equals(parameter, rhs.parameter)) {
return false;
}
if (!EqualsHelper.equals(type, rhs.type)) {
return false;
}
if (!EqualsHelper.equals(datatypeLibrary, rhs.datatypeLibrary)) {
return false;
}
if (!EqualsHelper.equals(lang, rhs.lang)) {
return false;
}
return true;
}
/**
* Created by ph-jaxb22-plugin -Xph-equalshashcode
*
*/
@Override
public int hashCode() {
return new HashCodeGenerator(this).append(annotation).append(parameter).append(type).append(datatypeLibrary).append(lang).getHashCode();
}
/**
* Created by ph-jaxb22-plugin -Xph-tostring
*
*/
@Override
public String toString() {
return new ToStringGenerator(this).append("annotation", annotation).append("parameter", parameter).append("type", type).append("datatypeLibrary", datatypeLibrary).append("lang", lang).toString();
}
/**
* Created by ph-jaxb22-plugin -Xph-list-extension
*
* @param aList
* The new list member to set. May be null
.
*/
public void setParameter(
@Nullable
final List aList) {
parameter = aList;
}
/**
* Created by ph-jaxb22-plugin -Xph-list-extension
*
* @return
* true
if at least one item is contained, false
otherwise.
*/
public boolean hasParameterEntries() {
return (!getParameter().isEmpty());
}
/**
* Created by ph-jaxb22-plugin -Xph-list-extension
*
* @return
* true
if no item is contained, false
otherwise.
*/
public boolean hasNoParameterEntries() {
return getParameter().isEmpty();
}
/**
* Created by ph-jaxb22-plugin -Xph-list-extension
*
* @return
* The number of contained elements. Always ≥ 0.
*/
@Nonnegative
public int getParameterCount() {
return getParameter().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 ArrayIndexOutOfBoundsException
* if the index is invalid!
*/
@Nullable
public DatatypeFacet getParameterAtIndex(
@Nonnegative
final int index) {
return getParameter().get(index);
}
/**
* Created by ph-jaxb22-plugin -Xph-list-extension
*
* @param elem
* The element to be added. May not be null
.
*/
public void addParameter(
@Nonnull
final DatatypeFacet elem) {
getParameter().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-cloneable
*
* @param ret
* The target object to clone to. May not be null
.
*/
public void cloneTo(
@Nonnull
Data ret) {
ret.annotation = ((annotation == null)?null:annotation.clone());
ret.datatypeLibrary = datatypeLibrary;
ret.lang = lang;
List retParameter = new ArrayList();
for (DatatypeFacet aItem: getParameter()) {
retParameter.add(((aItem == null)?null:aItem.clone()));
}
ret.parameter = retParameter;
ret.type = type;
}
/**
* Created by ph-jaxb22-plugin -Xph-cloneable
*
* @return
* The cloned object. Never null
.
*/
@Nonnull
@ReturnsMutableCopy
@Override
public Data clone() {
Data ret = new Data();
cloneTo(ret);
return ret;
}
}