From: Sangwook Ha Date: Sun, 27 Mar 2022 22:15:29 +0000 (-0700) Subject: Support AnydataNode in ParameterAwareNormalizedNodeWriter X-Git-Tag: v2.0.15~6 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=netconf.git;a=commitdiff_plain;h=e55d5bf4516f9c422c90ee848536bbee5b8a6b22 Support AnydataNode in ParameterAwareNormalizedNodeWriter AnydataNode is not processed in ParameterAwareNormalizedNodeWriter throwing IllegalStateException. Add a step to check/process AnydataNode in wasProcessAsSimpleNode(). JIRA: NETCONF-868 Change-Id: I637890ff6779d0a532ee6d4182e4c36baa4f5231 Signed-off-by: Sangwook Ha (cherry picked from commit 0b55436b34f4c764da926d8a9318af68a8c3cc98) --- diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/ParameterAwareNormalizedNodeWriter.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/ParameterAwareNormalizedNodeWriter.java index 378e9ddda8..8872e56ae5 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/ParameterAwareNormalizedNodeWriter.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/ParameterAwareNormalizedNodeWriter.java @@ -23,6 +23,7 @@ import org.opendaylight.restconf.nb.rfc8040.DepthParam; import org.opendaylight.restconf.nb.rfc8040.jersey.providers.api.RestconfNormalizedNodeWriter; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.AnydataNode; import org.opendaylight.yangtools.yang.data.api.schema.AnyxmlNode; import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode; import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode; @@ -172,8 +173,16 @@ public class ParameterAwareNormalizedNodeWriter implements RestconfNormalizedNod writer.scalarValue(anyxmlNode.body()); } writer.endNode(); + return true; + } + } else if (node instanceof AnydataNode) { + final AnydataNode anydataNode = (AnydataNode)node; + final Class objectModel = anydataNode.bodyObjectModel(); + if (writer.startAnydataNode(anydataNode.getIdentifier(), objectModel)) { + writer.scalarValue(anydataNode.body()); + writer.endNode(); + return true; } - return true; } return false;