anydata is a valid construct coming from YANG 1.1, effectively
replacing anyxml. This patch adds the support for processing anydata
nodes.
JIRA: NETCONF-622
Change-Id: I71207f5a053d718daaeaa4f3dcd6aa9ab27e3d57
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
101d39b9a007c963a8f57ee4e2660abb63e33790)
import org.opendaylight.netconf.sal.rest.doc.model.builder.OperationBuilder;
import org.opendaylight.netconf.sal.rest.doc.model.builder.OperationBuilder.Post;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.netconf.sal.rest.doc.model.builder.OperationBuilder;
import org.opendaylight.netconf.sal.rest.doc.model.builder.OperationBuilder.Post;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.AnyDataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
} else if (node instanceof AnyXmlSchemaNode) {
property = processAnyXMLNode((AnyXmlSchemaNode) node);
} else if (node instanceof AnyXmlSchemaNode) {
property = processAnyXMLNode((AnyXmlSchemaNode) node);
+ } else if (node instanceof AnyDataSchemaNode) {
+ property = processAnydataNode((AnyDataSchemaNode) node);
+
} else if (node instanceof ContainerSchemaNode) {
property = processDataNodeContainer((ContainerSchemaNode) node, parentName, models, isConfig,
schemaContext);
} else if (node instanceof ContainerSchemaNode) {
property = processDataNodeContainer((ContainerSchemaNode) node, parentName, models, isConfig,
schemaContext);
} else if (node instanceof AnyXmlSchemaNode) {
property = processAnyXMLNode((AnyXmlSchemaNode) node);
} else if (node instanceof AnyXmlSchemaNode) {
property = processAnyXMLNode((AnyXmlSchemaNode) node);
+ } else if (node instanceof AnyDataSchemaNode) {
+ property = processAnydataNode((AnyDataSchemaNode) node);
+
} else if (node instanceof ContainerSchemaNode) {
property = processDataNodeContainer((ContainerSchemaNode) node, moduleName, models, isConfig,
schemaContext);
} else if (node instanceof ContainerSchemaNode) {
property = processDataNodeContainer((ContainerSchemaNode) node, moduleName, models, isConfig,
schemaContext);
+ private static ObjectNode processAnydataNode(final AnyDataSchemaNode leafNode) {
+ final ObjectNode property = JsonNodeFactory.instance.objectNode();
+
+ final String leafDescription = leafNode.getDescription().orElse(null);
+ putIfNonNull(property, DESCRIPTION_KEY, leafDescription);
+
+ processMandatory(leafNode, property);
+ final String localName = leafNode.getQName().getLocalName();
+ property.put(TYPE_KEY, "example of anydata " + localName);
+
+ return property;
+ }
+
private static ObjectNode processAnyXMLNode(final AnyXmlSchemaNode leafNode) {
final ObjectNode property = JsonNodeFactory.instance.objectNode();
private static ObjectNode processAnyXMLNode(final AnyXmlSchemaNode leafNode) {
final ObjectNode property = JsonNodeFactory.instance.objectNode();