Fix implementation nullness guarantees
[yangtools.git] / yang / yang-data-util / src / main / java / org / opendaylight / yangtools / yang / data / util / ListNodeDataWithSchema.java
index 14553c0a4b8177d7ababf4333cc9260d50ed97c7..65f967d4affdf7af7d515e827fba13550b9fd0ad 100644 (file)
@@ -8,8 +8,8 @@
 package org.opendaylight.yangtools.yang.data.util;
 
 import java.io.IOException;
+import org.opendaylight.yangtools.rfc7952.data.api.StreamWriterMetadataExtension;
 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.ListSchemaNode;
 
 /**
@@ -19,15 +19,16 @@ import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
  * <p>
  * Represents a YANG list node.
  */
-public class ListNodeDataWithSchema extends CompositeNodeDataWithSchema {
-
-    public ListNodeDataWithSchema(final DataSchemaNode schema) {
+public class ListNodeDataWithSchema extends CompositeNodeDataWithSchema<ListSchemaNode>
+        implements MultipleEntryDataWithSchema<ListEntryNodeDataWithSchema> {
+    public ListNodeDataWithSchema(final ListSchemaNode schema) {
         super(schema);
     }
 
     @Override
-    public void write(final NormalizedNodeStreamWriter writer) throws IOException {
-        final ListSchemaNode schema = (ListSchemaNode) getSchema();
+    public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
+            throws IOException {
+        final ListSchemaNode schema = getSchema();
         writer.nextDataSchemaNode(schema);
         if (schema.getKeyDefinition().isEmpty()) {
             writer.startUnkeyedList(provideNodeIdentifier(), childSizeHint());
@@ -36,8 +37,14 @@ public class ListNodeDataWithSchema extends CompositeNodeDataWithSchema {
         } else {
             writer.startMapNode(provideNodeIdentifier(), childSizeHint());
         }
-        super.write(writer);
+        super.write(writer, metaWriter);
         writer.endNode();
     }
 
+    @Override
+    public final ListEntryNodeDataWithSchema newChildEntry() {
+        final ListEntryNodeDataWithSchema child = ListEntryNodeDataWithSchema.forSchema(getSchema());
+        addChild(child);
+        return child;
+    }
 }