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%2FJSONNormalizedNodeStreamWriter.java;h=53c8d5439eee25017127ca65541f46b24eabe316;hb=2f84ab989352d583f22557d524b1469ffd582cf1;hp=e1bba78be001caa2977611544256ff23e5ffd510;hpb=0f5fb5eca68b21101f7f0f359740958c4c34ef6f;p=yangtools.git diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java index e1bba78be0..53c8d5439e 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java @@ -11,6 +11,9 @@ import com.google.common.base.CharMatcher; import com.google.common.base.Preconditions; import com.google.common.base.Strings; import com.google.gson.stream.JsonWriter; +import java.io.IOException; +import java.io.Writer; +import java.net.URI; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -21,12 +24,9 @@ import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.model.api.SchemaNode; import org.opendaylight.yangtools.yang.model.api.SchemaPath; -import java.io.IOException; -import java.io.Writer; -import java.net.URI; - /** * This implementation will create JSON output as output stream. * @@ -120,7 +120,7 @@ public class JSONNormalizedNodeStreamWriter implements NormalizedNodeStreamWrite * Create a new stream writer, which writes to the specified output stream. The codec factory * can be reused between multiple writers. * - * @param codecFactor JSON codec factory + * @param codecFactory JSON codec factory * @param writer Output writer * @param indentSize indentation size * @return A stream writer instance @@ -161,8 +161,12 @@ public class JSONNormalizedNodeStreamWriter implements NormalizedNodeStreamWrite @SuppressWarnings("unused") @Override public void startContainerNode(final NodeIdentifier name, final int childSizeHint) throws IOException { - final ContainerSchemaNode schema = tracker.startContainerNode(name); - context = new JSONStreamWriterNamedObjectContext(context, name, DEFAULT_EMIT_EMPTY_CONTAINERS || schema.isPresenceContainer()); + final SchemaNode schema = tracker.startContainerNode(name); + + final boolean isPresence = schema instanceof ContainerSchemaNode ? + ((ContainerSchemaNode) schema).isPresenceContainer() : DEFAULT_EMIT_EMPTY_CONTAINERS; + + context = new JSONStreamWriterNamedObjectContext(context, name, isPresence); } @Override