Transform QName value in identity leaf 88/95888/2
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:31:23 +0000 (02:31 +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>
yang/yang-data-transform/src/main/java/org/opendaylight/yangtools/transform/QNameTransformingStreamWriter.java

index ac17ea06f6262f3d9f159eb26cc290f7fed94203..7a838f515f05018a66fbea56371bb17bf2168d16 100644 (file)
@@ -148,6 +148,12 @@ public abstract class QNameTransformingStreamWriter extends ForwardingNormalized
         return super.startAnyxmlNode(transform(name), objectModel);
     }
 
+    @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.
      *