Newer
Older
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// 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: 2020.10.24 at 09:39:16 AM CEST
//
package net.ivoa.xml.vospace.v2;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver;
import it.inaf.oats.vospace.datamodel.NodeTypeJsonResolver;
import java.util.ArrayList;
import java.util.List;
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.XmlElementWrapper;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlTransient;
*
* The base class for all nodes.
*
*
* <p>Java class for Node complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="Node">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="properties" type="{http://www.ivoa.net/xml/VOSpace/v2.0}PropertyList" minOccurs="0"/>
* </sequence>
* <attribute name="uri" use="required" type="{http://www.w3.org/2001/XMLSchema}anyURI" />
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Node", propOrder = {
"properties"
})
@XmlSeeAlso({
LinkNode.class,
DataNode.class
})
// <edit>
@JsonTypeInfo(use = JsonTypeInfo.Id.CUSTOM, property = "type", include = JsonTypeInfo.As.EXISTING_PROPERTY)
@JsonTypeIdResolver(NodeTypeJsonResolver.class)
// </edit>
// <edit>
// Auto-generated class defined a PropertyList wrapper class.
@XmlElement(name = "property")
@XmlElementWrapper(name = "properties", required = false)
protected List<Property> properties;
// Used for generating missing type attribute for root node. For child nodes it is filled automatically.
@XmlAttribute(name = "type", namespace = "http://www.w3.org/2001/XMLSchema-instance", required = false)
private String type;
/* This method exists to fix the issue with type attribute. See RemoveDuplicateTypeAdapter class. */
public void removeType() {
this.type = null;
}
public Node() {
type = getType();
}
// Needed for handling inheritance in JSON (in XML, type attribute is automatically generated by JAXB).
@JsonProperty
@XmlTransient
public final String getType() {
return "vos:" + getClass().getSimpleName();
// </edit>
@XmlAttribute(name = "uri", required = true)
@XmlSchemaType(name = "anyURI")
protected String uri;
// <edit>
public List<Property> getProperties() {
if (properties == null) {
properties = new ArrayList<>();
}
public void setProperties(List<Property> value) {
// </edit>
/**
* Gets the value of the uri property.
*
* @return possible object is {@link String }
*
*/
public String getUri() {
return uri;
}
/**
* Sets the value of the uri property.
*
* @param value allowed object is {@link String }
*
*/
public void setUri(String value) {
this.uri = value;
}
}