X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-codec-gson%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fcodec%2Fgson%2FListNodeDataWithSchema.java;h=abbf1eaec48dd67cf90c4a6e455e8c1271e4cab2;hb=f7fe89b85f540dbe7d1fc051f2082f2ce571321a;hp=612c386e23a99cd248930f89f722156c647afd9a;hpb=feb866798e33453d6e9255e5f197a64296d33e93;p=yangtools.git diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/ListNodeDataWithSchema.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/ListNodeDataWithSchema.java index 612c386e23..abbf1eaec4 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/ListNodeDataWithSchema.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/ListNodeDataWithSchema.java @@ -7,11 +7,8 @@ */ package org.opendaylight.yangtools.yang.data.codec.gson; -import static org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.UNKNOWN_SIZE; - import java.io.IOException; - -import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.api.schema.stream.SchemaAwareNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; @@ -22,14 +19,18 @@ class ListNodeDataWithSchema extends CompositeNodeDataWithSchema { } @Override - protected void writeToStream(final NormalizedNodeStreamWriter nnStreamWriter) throws IOException { - if (!((ListSchemaNode) getSchema()).getKeyDefinition().isEmpty()) { - nnStreamWriter.startMapNode(provideNodeIdentifier(), UNKNOWN_SIZE); + public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException { + final ListSchemaNode schema = (ListSchemaNode) getSchema(); + writer.nextDataSchemaNode(schema); + if (schema.getKeyDefinition().isEmpty()) { + writer.startUnkeyedList(provideNodeIdentifier(), childSizeHint()); + } else if(schema.isUserOrdered()) { + writer.startOrderedMapNode(provideNodeIdentifier(), childSizeHint()); } else { - nnStreamWriter.startUnkeyedList(provideNodeIdentifier(), UNKNOWN_SIZE); + writer.startMapNode(provideNodeIdentifier(), childSizeHint()); } - super.writeToStream(nnStreamWriter); - nnStreamWriter.endNode(); + super.write(writer); + writer.endNode(); } }