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 javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
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>
public class Node {
protected PropertyList properties;
// <edit>
// 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>
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
@XmlAttribute(name = "uri", required = true)
@XmlSchemaType(name = "anyURI")
protected String uri;
/**
* Gets the value of the properties property.
*
* @return possible object is {@link PropertyList }
*
*/
public PropertyList getProperties() {
return properties;
}
/**
* Sets the value of the properties property.
*
* @param value allowed object is {@link PropertyList }
*
*/
public void setProperties(PropertyList value) {
this.properties = value;
}
/**
* 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;
}
}