+++ /dev/null
-/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.yangtools.yang.data.api.schema.stream;
-
-import com.google.common.annotations.Beta;
-import com.google.common.base.Preconditions;
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-
-/**
- * Utility class for adapting {@link NormalizedNodeStreamWriter}s to their {@link DataSchemaNodeAware} counterparts
- * which ignore the provided schema node.
- */
-@Beta
-public final class DataSchemaNodeAwareAdaptor {
- private DataSchemaNodeAwareAdaptor() {
- throw new UnsupportedOperationException();
- }
-
- public static SchemaAwareNormalizedNodeStreamAttributeWriter forAttributeWriter(
- @Nonnull final NormalizedNodeStreamAttributeWriter writer) {
- Preconditions.checkNotNull(writer, "Writer must not be null");
-
- if (writer instanceof SchemaAwareNormalizedNodeStreamAttributeWriter) {
- return (SchemaAwareNormalizedNodeStreamAttributeWriter) writer;
- }
-
- return new AttributeWriter() {
- @Override
- protected NormalizedNodeStreamAttributeWriter delegate() {
- return writer;
- }
- };
- }
-
- public static SchemaAwareNormalizedNodeStreamWriter forWriter(@Nonnull final NormalizedNodeStreamWriter writer) {
- Preconditions.checkNotNull(writer, "Writer must not be null");
-
- if (writer instanceof SchemaAwareNormalizedNodeStreamWriter) {
- return (SchemaAwareNormalizedNodeStreamWriter) writer;
- }
- if (writer instanceof NormalizedNodeStreamAttributeWriter) {
- return forAttributeWriter((NormalizedNodeStreamAttributeWriter) writer);
- }
-
- return new Writer() {
- @Override
- protected NormalizedNodeStreamWriter delegate() {
- return writer;
- }
- };
- }
-
- private static abstract class AttributeWriter extends ForwardingNormalizedNodeStreamAttributeWriter
- implements SchemaAwareNormalizedNodeStreamAttributeWriter {
- @Override
- public void nextDataSchemaNode(final DataSchemaNode schema) {
- // Intentional no-op
- }
- }
-
- private static abstract class Writer extends ForwardingNormalizedNodeStreamWriter
- implements SchemaAwareNormalizedNodeStreamWriter {
- @Override
- public void nextDataSchemaNode(final DataSchemaNode schema) {
- // Intentional no-op
- }
- }
-}
import java.util.Deque;
import java.util.HashSet;
import java.util.Set;
-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.data.util.AbstractNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.AnyXmlNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.CompositeNodeDataWithSchema;
@Beta
public final class JsonParserStream implements Closeable, Flushable {
private final Deque<URI> namespaces = new ArrayDeque<>();
- private final SchemaAwareNormalizedNodeStreamWriter writer;
+ private final NormalizedNodeStreamWriter 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 = DataSchemaNodeAwareAdaptor.forWriter(writer);
+ this.writer = Preconditions.checkNotNull(writer);
this.codecs = JSONCodecFactory.create(schemaContext);
this.parentNode = parentNode;
}
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import javax.xml.transform.dom.DOMSource;
-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.data.util.AbstractNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.AnyXmlNodeDataWithSchema;
import org.opendaylight.yangtools.yang.data.util.CompositeNodeDataWithSchema;
public final class XmlParserStream implements Closeable, Flushable {
private String rootElement = null;
- private final SchemaAwareNormalizedNodeStreamWriter writer;
+ private final NormalizedNodeStreamWriter writer;
private final XmlCodecFactory codecs;
private final SchemaContext schema;
private final DataSchemaNode parentNode;
private XmlParserStream(final NormalizedNodeStreamWriter writer, final SchemaContext schemaContext,
final DataSchemaNode parentNode) {
this.schema = Preconditions.checkNotNull(schemaContext);
- this.writer = DataSchemaNodeAwareAdaptor.forWriter(writer);
+ this.writer = Preconditions.checkNotNull(writer);
this.codecs = XmlCodecFactory.create(schemaContext);
this.parentNode = parentNode;
}
return this;
}
- private String readAnyXmlValue(XMLStreamReader in) throws XMLStreamException {
+ private String readAnyXmlValue(final XMLStreamReader in) throws XMLStreamException {
String result = "";
String anyXmlElementName = in.getLocalName();
return result;
}
- private void read(final XMLStreamReader in, AbstractNodeDataWithSchema parent) throws XMLStreamException,
+ private void read(final XMLStreamReader in, final AbstractNodeDataWithSchema parent) throws XMLStreamException,
URISyntaxException, ParserConfigurationException, SAXException, IOException {
if (in.hasNext()) {
if (parent instanceof LeafNodeDataWithSchema || parent instanceof LeafListEntryNodeDataWithSchema) {
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.SchemaAwareNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
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 SchemaAwareNormalizedNodeStreamWriter writer) throws IOException;
+ public abstract void write(final NormalizedNodeStreamWriter writer) throws IOException;
protected final NodeIdentifier provideNodeIdentifier() {
return NodeIdentifier.create(schema.getQName());
package org.opendaylight.yangtools.yang.data.util;
import java.io.IOException;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.SchemaAwareNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
public class AnyXmlNodeDataWithSchema extends SimpleNodeDataWithSchema {
}
@Override
- public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer) throws IOException {
writer.nextDataSchemaNode(getSchema());
writer.leafNode(provideNodeIdentifier(), getValue());
}
package org.opendaylight.yangtools.yang.data.util;
import java.io.IOException;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.SchemaAwareNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
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 SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer) throws IOException {
writer.nextDataSchemaNode(getSchema());
writer.startChoiceNode(provideNodeIdentifier(), childSizeHint());
super.write(writer);
import java.util.Deque;
import java.util.List;
import java.util.Map.Entry;
-import javax.annotation.Nonnull;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.SchemaAwareNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
import org.opendaylight.yangtools.yang.model.api.AugmentationTarget;
}
@Override
- public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer) throws IOException {
for (AbstractNodeDataWithSchema child : children) {
child.write(writer);
}
* @param child child node
* @return augmentation schema
*/
- private AugmentationSchema findCorrespondingAugment(final DataSchemaNode parent, final DataSchemaNode child) {
+ private static AugmentationSchema findCorrespondingAugment(final DataSchemaNode parent, final DataSchemaNode child) {
if (parent instanceof AugmentationTarget && !(parent instanceof ChoiceSchemaNode)) {
for (AugmentationSchema augmentation : ((AugmentationTarget) parent).getAvailableAugmentations()) {
DataSchemaNode childInAugmentation = augmentation.getDataChildByName(child.getQName());
return new YangInstanceIdentifier.AugmentationIdentifier(ImmutableSet.copyOf(qnames));
}
- private static final Function<DataSchemaNode, QName> QNAME_FUNCTION = new Function<DataSchemaNode, QName>() {
- @Override
- public QName apply(@Nonnull final DataSchemaNode input) {
- return input.getQName();
- }
- };
+ private static final Function<DataSchemaNode, QName> QNAME_FUNCTION = input -> input.getQName();
}
package org.opendaylight.yangtools.yang.data.util;
import java.io.IOException;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.SchemaAwareNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
class ContainerNodeDataWithSchema extends CompositeNodeDataWithSchema {
}
@Override
- public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer) throws IOException {
writer.nextDataSchemaNode(getSchema());
writer.startContainerNode(provideNodeIdentifier(), childSizeHint());
super.write(writer);
package org.opendaylight.yangtools.yang.data.util;
import java.io.IOException;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.SchemaAwareNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
public class LeafListEntryNodeDataWithSchema extends SimpleNodeDataWithSchema {
}
@Override
- public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer) throws IOException {
writer.nextDataSchemaNode(getSchema());
writer.leafSetEntryNode(getSchema().getQName(), getValue());
}
package org.opendaylight.yangtools.yang.data.util;
import java.io.IOException;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.SchemaAwareNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
}
@Override
- public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer) throws IOException {
final LeafListSchemaNode schema = (LeafListSchemaNode) getSchema();
writer.nextDataSchemaNode(schema);
if (schema.isUserOrdered()) {
package org.opendaylight.yangtools.yang.data.util;
import java.io.IOException;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.SchemaAwareNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
public class LeafNodeDataWithSchema extends SimpleNodeDataWithSchema {
}
@Override
- public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer) throws IOException {
writer.nextDataSchemaNode(getSchema());
writer.leafNode(provideNodeIdentifier(), getValue());
}
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.SchemaAwareNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
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 SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer) throws IOException {
final Collection<QName> keyDef = ((ListSchemaNode) getSchema()).getKeyDefinition();
if (keyDef.isEmpty()) {
writer.nextDataSchemaNode(getSchema());
package org.opendaylight.yangtools.yang.data.util;
import java.io.IOException;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.SchemaAwareNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
}
@Override
- public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer) throws IOException {
final ListSchemaNode schema = (ListSchemaNode) getSchema();
writer.nextDataSchemaNode(schema);
if (schema.getKeyDefinition().isEmpty()) {
package org.opendaylight.yangtools.yang.data.util;
import java.io.IOException;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.SchemaAwareNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.model.api.YangModeledAnyXmlSchemaNode;
final class YangModeledAnyXmlNodeDataWithSchema extends CompositeNodeDataWithSchema {
}
@Override
- public void write(final SchemaAwareNormalizedNodeStreamWriter writer) throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer) throws IOException {
writer.nextDataSchemaNode(getSchema());
writer.startYangModeledAnyXmlNode(provideNodeIdentifier(), childSizeHint());
super.write(writer);