Transform QName value in identity leaf
[yangtools.git] / yang / yang-data-transform / src / main / java / org / opendaylight / yangtools / transform / QNameTransformingStreamWriter.java
index 444464fd6a9016c5eb535c4e2042f028912a9b95..8a7fa6af546cef0c66d07de94ea1bc43d97949f9 100644 (file)
@@ -144,8 +144,8 @@ public abstract class QNameTransformingStreamWriter extends ForwardingNormalized
     }
 
     @Override
-    public void startAnyxmlNode(final NodeIdentifier name) throws IOException {
-        super.startAnyxmlNode(transform(name));
+    public boolean startAnyxmlNode(final NodeIdentifier name, final Class<?> objectModel) throws IOException {
+        return super.startAnyxmlNode(transform(name), objectModel);
     }
 
     @Override
@@ -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.
      *