Transform QName value in identity leaf 94/95894/1
authorIvan Hrasko <ivan.hrasko@pantheon.tech>
Thu, 22 Apr 2021 16:29:02 +0000 (18:29 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 23 Apr 2021 00:51:05 +0000 (02:51 +0200)
Leafs with identityref point to the identity's QName. Since we are
remapping namespaces, these need to be included as well.

JIRA: YANGTOOLS-1277
Change-Id: I2885dd59bcdd85cfe4f29edceaf68cb27ed7dca7
Signed-off-by: Ivan Hrasko <ivan.hrasko@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 7042ef1344f1c38b730132e5bcb12592fcd9e9b0)

yang/yang-data-transform/src/main/java/org/opendaylight/yangtools/transform/QNameTransformingStreamWriter.java

index 1ff8994794248707fbe3097b255b9f896e0b0501..8a7fa6af546cef0c66d07de94ea1bc43d97949f9 100644 (file)
@@ -153,6 +153,12 @@ public abstract class QNameTransformingStreamWriter extends ForwardingNormalized
         super.startYangModeledAnyXmlNode(transform(name), childSizeHint);
     }
 
+    @Override
+    public void scalarValue(final Object value) throws IOException {
+        // identityref leaf nodes contain identity QName as a value - it needs to be transformed
+        super.scalarValue(value instanceof QName ? transform((QName) value) : value);
+    }
+
     /**
      * Transforms a QName to new mapping.
      *