For stable helium
- JsonParserStream - added input parameter to create() factory method which
specify parent schema node of schema node which is at top level of JSON
input. Usually it is schema context.
Change-Id: I15ca2bdd0f8ace617d834040cd9a6745b40ee78a
Signed-off-by: Jozef Gloncak <jgloncak@cisco.com>
(cherry picked from commit
2bba449d5246784298943ccd1359d06f0e8d840f)
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
/**
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
/**
private final NormalizedNodeStreamWriter writer;
private final JSONCodecFactory codecs;
private final SchemaContext schema;
private final NormalizedNodeStreamWriter writer;
private final JSONCodecFactory codecs;
private final SchemaContext schema;
+ private final DataSchemaNode parentNode;
- private JsonParserStream(final NormalizedNodeStreamWriter writer, final SchemaContext schemaContext) {
+ private JsonParserStream(final NormalizedNodeStreamWriter writer, final SchemaContext schemaContext, final DataSchemaNode parentNode) {
this.schema = Preconditions.checkNotNull(schemaContext);
this.writer = Preconditions.checkNotNull(writer);
this.codecs = JSONCodecFactory.create(schemaContext);
this.schema = Preconditions.checkNotNull(schemaContext);
this.writer = Preconditions.checkNotNull(writer);
this.codecs = JSONCodecFactory.create(schemaContext);
+ this.parentNode = parentNode;
+ }
+
+ public static JsonParserStream create(final NormalizedNodeStreamWriter writer, final SchemaContext schemaContext, final SchemaNode parentNode ) {
+ Preconditions.checkArgument(parentNode instanceof DataSchemaNode, "Instance of DataSchemaNode class awaited.");
+ return new JsonParserStream(writer, schemaContext, (DataSchemaNode) parentNode);
}
public static JsonParserStream create(final NormalizedNodeStreamWriter writer, final SchemaContext schemaContext) {
}
public static JsonParserStream create(final NormalizedNodeStreamWriter writer, final SchemaContext schemaContext) {
- return new JsonParserStream(writer, schemaContext);
+ return new JsonParserStream(writer, schemaContext, schemaContext);
}
public JsonParserStream parse(final JsonReader reader) throws JsonIOException, JsonSyntaxException {
}
public JsonParserStream parse(final JsonReader reader) throws JsonIOException, JsonSyntaxException {
try {
reader.peek();
isEmpty = false;
try {
reader.peek();
isEmpty = false;
- CompositeNodeDataWithSchema compositeNodeDataWithSchema = new CompositeNodeDataWithSchema(schema);
+ CompositeNodeDataWithSchema compositeNodeDataWithSchema = new CompositeNodeDataWithSchema(parentNode);
read(reader, compositeNodeDataWithSchema);
compositeNodeDataWithSchema.write(writer);
read(reader, compositeNodeDataWithSchema);
compositeNodeDataWithSchema.write(writer);