import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.opendaylight.yangtools.rfc7952.data.api.NormalizedMetadataStreamWriter;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.rfc7952.data.api.StreamWriterMetadataExtension;
import org.opendaylight.yangtools.util.ImmutableMapTemplate;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
* <p>
* Represents a YANG list entry node.
*/
-public abstract class ListEntryNodeDataWithSchema extends CompositeNodeDataWithSchema<ListSchemaNode> {
+public abstract class ListEntryNodeDataWithSchema extends AbstractMountPointDataWithSchema<ListSchemaNode> {
private static final class Keyed extends ListEntryNodeDataWithSchema {
private final Map<QName, SimpleNodeDataWithSchema<?>> keyValues = new HashMap<>();
// This template results in Maps in schema definition order
}
@Override
- public void addChild(final AbstractNodeDataWithSchema<?> newChild) {
+ void addChild(final AbstractNodeDataWithSchema<?> newChild) {
final DataSchemaNode childSchema = newChild.getSchema();
if (childSchema instanceof LeafSchemaNode) {
final QName childName = childSchema.getQName();
}
@Override
- public void write(final NormalizedNodeStreamWriter writer, final NormalizedMetadataStreamWriter metaWriter)
+ public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
throws IOException {
writer.nextDataSchemaNode(getSchema());
- final NodeIdentifierWithPredicates identifier = new NodeIdentifierWithPredicates(getSchema().getQName(),
+ final NodeIdentifierWithPredicates identifier = NodeIdentifierWithPredicates.of(getSchema().getQName(),
predicateTemplate.instantiateTransformed(keyValues, (key, node) -> node.getValue()));
writer.startMapEntryNode(identifier, childSizeHint());
}
@Override
- public void write(final NormalizedNodeStreamWriter writer, final NormalizedMetadataStreamWriter metaWriter)
+ public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
throws IOException {
writer.nextDataSchemaNode(getSchema());
writer.startUnkeyedListItem(provideNodeIdentifier(), childSizeHint());
super(schema);
}
- public static ListEntryNodeDataWithSchema forSchema(final ListSchemaNode schema) {
+ static @NonNull ListEntryNodeDataWithSchema forSchema(final ListSchemaNode schema) {
final List<QName> keyDef = schema.getKeyDefinition();
return keyDef.isEmpty() ? new Unkeyed(schema) : new Keyed(schema, keyDef);
}