import java.io.IOException;
import java.util.Objects;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-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;
/**
* @param writer Target writer
* @throws IOException reported when thrown by the writer.
*/
- public abstract void write(final NormalizedNodeStreamWriter writer) throws IOException;
+ public abstract void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException;
protected final NodeIdentifier provideNodeIdentifier() {
return NodeIdentifier.create(schema.getQName());
package org.opendaylight.yangtools.yang.data.codec.gson;
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;
class AnyXmlNodeDataWithSchema extends SimpleNodeDataWithSchema {
}
@Override
- public void write(final NormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ writer.nextDataSchemaNode(getSchema());
// FIXME: should be changed according to format of value
writer.anyxmlNode(provideNodeIdentifier(), getValue());
}
package org.opendaylight.yangtools.yang.data.codec.gson;
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.ChoiceCaseNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
}
@Override
- public void write(final NormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ writer.nextDataSchemaNode(getSchema());
writer.startChoiceNode(provideNodeIdentifier(), childSizeHint());
super.write(writer);
writer.endNode();
import java.util.Deque;
import java.util.List;
import java.util.Map.Entry;
-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.data.impl.schema.SchemaUtils;
import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
}
@Override
- public void write(final NormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
for (AbstractNodeDataWithSchema child : children) {
child.write(writer);
}
for (Entry<AugmentationSchema, Collection<AbstractNodeDataWithSchema>> augmentationToChild : augmentationsToChild.asMap().entrySet()) {
final Collection<AbstractNodeDataWithSchema> childsFromAgumentation = augmentationToChild.getValue();
if (!childsFromAgumentation.isEmpty()) {
+ // FIXME: can we get the augmentation schema?
writer.startAugmentationNode(SchemaUtils.getNodeIdentifierForAugmentation(augmentationToChild.getKey()));
for (AbstractNodeDataWithSchema nodeDataWithSchema : childsFromAgumentation) {
package org.opendaylight.yangtools.yang.data.codec.gson;
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;
class ContainerNodeDataWithSchema extends CompositeNodeDataWithSchema {
}
@Override
- public void write(final NormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ writer.nextDataSchemaNode(getSchema());
writer.startContainerNode(provideNodeIdentifier(), childSizeHint());
super.write(writer);
writer.endNode();
import java.util.List;
import java.util.Set;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.DataSchemaNodeAwareAdaptor;
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.AnyXmlSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
@Beta
public final class JsonParserStream implements Closeable, Flushable {
private final Deque<URI> namespaces = new ArrayDeque<>();
- private final NormalizedNodeStreamWriter writer;
+ private final SchemaAwareNormalizedNodeStreamWriter writer;
private final JSONCodecFactory codecs;
private final SchemaContext schema;
private final DataSchemaNode parentNode;
private JsonParserStream(final NormalizedNodeStreamWriter writer, final SchemaContext schemaContext, final DataSchemaNode parentNode) {
this.schema = Preconditions.checkNotNull(schemaContext);
- this.writer = Preconditions.checkNotNull(writer);
+ this.writer = DataSchemaNodeAwareAdaptor.forWriter(writer);
this.codecs = JSONCodecFactory.create(schemaContext);
this.parentNode = parentNode;
}
package org.opendaylight.yangtools.yang.data.codec.gson;
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;
class LeafListEntryNodeDataWithSchema extends SimpleNodeDataWithSchema {
}
@Override
- public void write(final NormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ writer.nextDataSchemaNode(getSchema());
writer.leafSetEntryNode(getValue());
}
}
package org.opendaylight.yangtools.yang.data.codec.gson;
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;
class LeafListNodeDataWithSchema extends CompositeNodeDataWithSchema {
}
@Override
- public void write(final NormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ writer.nextDataSchemaNode(getSchema());
writer.startLeafSet(provideNodeIdentifier(), childSizeHint());
super.write(writer);
writer.endNode();
package org.opendaylight.yangtools.yang.data.codec.gson;
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;
class LeafNodeDataWithSchema extends SimpleNodeDataWithSchema {
}
@Override
- public void write(final NormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ writer.nextDataSchemaNode(getSchema());
writer.leafNode(provideNodeIdentifier(), getValue());
}
-
}
package org.opendaylight.yangtools.yang.data.codec.gson;
import com.google.common.base.Preconditions;
-
import java.io.IOException;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-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.LeafSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
}
@Override
- public void write(final NormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
final Collection<QName> keyDef = ((ListSchemaNode) getSchema()).getKeyDefinition();
if (keyDef.isEmpty()) {
+ writer.nextDataSchemaNode(getSchema());
writer.startUnkeyedListItem(provideNodeIdentifier(), childSizeHint());
super.write(writer);
writer.endNode();
predicates.put(qname, qNameToKeys.get(qname).getValue());
}
+ writer.nextDataSchemaNode(getSchema());
writer.startMapEntryNode(
new NodeIdentifierWithPredicates(getSchema().getQName(), predicates),
childSizeHint());
package org.opendaylight.yangtools.yang.data.codec.gson;
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
- public void write(final NormalizedNodeStreamWriter writer) throws IOException {
+ 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()) {