*/
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;
}
@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();
}
}