Bug 8745: Add support for parsing attributes to the new XML parser
[yangtools.git] / yang / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / ListEntryNodeDataWithSchema.java
index 13a734d28d1b4fdae48cfaf1a9a999aae69db296..8c751339105ad07733bc4d9bf6ee95561cfdbb72 100644 (file)
@@ -15,6 +15,7 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamAttributeWriter;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
@@ -74,9 +75,16 @@ public class ListEntryNodeDataWithSchema extends CompositeNodeDataWithSchema {
         }
 
         writer.nextDataSchemaNode(getSchema());
-        writer.startMapEntryNode(
-            new NodeIdentifierWithPredicates(getSchema().getQName(), predicates),
-            childSizeHint());
+
+        if (writer instanceof NormalizedNodeStreamAttributeWriter && getAttributes() != null) {
+            ((NormalizedNodeStreamAttributeWriter) writer).startMapEntryNode(
+                    new NodeIdentifierWithPredicates(getSchema().getQName(), predicates), childSizeHint(),
+                    getAttributes());
+        } else {
+            writer.startMapEntryNode(new NodeIdentifierWithPredicates(getSchema().getQName(), predicates),
+                    childSizeHint());
+        }
+
         super.write(writer);
         writer.endNode();
     }