import org.opendaylight.yangtools.yang.data.api.schema.MountPointContext;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedAnydata;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMountPointExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MountPointExtension;
import org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack;
import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
* <p>
* Values of leaf and leaf-list are NOT translated according to codecs.
*/
-public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeStreamWriter,
- StreamWriterMountPointExtension {
+public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeStreamWriter, MountPointExtension {
private static final class Exclusive extends JSONNormalizedNodeStreamWriter {
Exclusive(final JSONCodecFactory codecFactory, final NormalizedNodeStreamWriterStack tracker,
final JsonWriter writer, final JSONStreamWriterRootContext rootContext) {
}
@Override
- public ClassToInstanceMap<NormalizedNodeStreamWriterExtension> getExtensions() {
- return ImmutableClassToInstanceMap.of(StreamWriterMountPointExtension.class, this);
+ public ClassToInstanceMap<Extension> getExtensions() {
+ return ImmutableClassToInstanceMap.of(MountPointExtension.class, this);
}
@Override
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedAnydata;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.data.util.NormalizedNodeStreamWriterStack;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.EffectiveStatementInference;
* removed in a future version.
*/
public abstract sealed class XMLStreamNormalizedNodeStreamWriter<T>
- implements NormalizedNodeStreamWriter, StreamWriterMetadataExtension
+ implements NormalizedNodeStreamWriter, MetadataExtension
permits SchemaAwareXMLStreamNormalizedNodeStreamWriter, SchemalessXMLStreamNormalizedNodeStreamWriter {
private static final Logger LOG = LoggerFactory.getLogger(XMLStreamNormalizedNodeStreamWriter.class);
private static final Set<String> BROKEN_ATTRIBUTES = ConcurrentHashMap.newKeySet();
}
@Override
- public final ClassToInstanceMap<NormalizedNodeStreamWriterExtension> getExtensions() {
- return ImmutableClassToInstanceMap.of(StreamWriterMetadataExtension.class, this);
+ public final ClassToInstanceMap<Extension> getExtensions() {
+ return ImmutableClassToInstanceMap.of(MetadataExtension.class, this);
}
abstract void startAnydata(NodeIdentifier name);
StreamWriterFacade.warnLegacyAttribute(localName);
if (!(value instanceof String)) {
if (BROKEN_ATTRIBUTES.add(localName)) {
- LOG.warn("Unbound annotation {} does not have a String value, ignoring it. Please fix the "
- + "source of this annotation either by formatting it to a String or removing its "
- + "use", localName, new Throwable("Call stack"));
+ LOG.warn("""
+ Unbound annotation {} does not have a String value, ignoring it. Please fix the \
+ source of this annotation either by formatting it to a String or removing its \
+ use""", localName, new Throwable("Call stack"));
}
LOG.debug("Ignoring annotation {} value {}", localName, value);
} else {
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MountPointExtension;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMountPointExtension;
/**
* A {@link MountPointNode}-aware counterpart to {@link NormalizedNodeWriter}. Based on the backing writer's capability
}
private static final class Forwarding extends MountPointNormalizedNodeWriter {
- private final StreamWriterMountPointExtension mountWriter;
+ private final MountPointExtension mountWriter;
- Forwarding(final NormalizedNodeStreamWriter writer, final StreamWriterMountPointExtension mountWriter) {
+ Forwarding(final NormalizedNodeStreamWriter writer, final MountPointExtension mountWriter) {
super(writer);
this.mountWriter = requireNonNull(mountWriter);
}
}
public static @NonNull MountPointNormalizedNodeWriter forStreamWriter(final NormalizedNodeStreamWriter writer) {
- final StreamWriterMountPointExtension mountWriter = writer.getExtensions()
- .getInstance(StreamWriterMountPointExtension.class);
+ final var mountWriter = writer.getExtensions().getInstance(MountPointExtension.class);
return mountWriter == null ? new Filtering(writer) : new Forwarding(writer, mountWriter);
}
@SuppressFBWarnings(value = "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE",
justification = "SpotBugs does not grok checkArgument()")
public static @NonNull MountPointNormalizedNodeWriter forwardingFor(final NormalizedNodeStreamWriter writer) {
- final StreamWriterMountPointExtension mountWriter = writer.getExtensions()
- .getInstance(StreamWriterMountPointExtension.class);
+ final var mountWriter = writer.getExtensions().getInstance(MountPointExtension.class);
checkArgument(mountWriter != null, "Writer %s does not support mount points", writer);
return new Forwarding(writer, mountWriter);
}
protected abstract NormalizedNodeStreamWriter delegate();
@Override
- public ClassToInstanceMap<NormalizedNodeStreamWriterExtension> getExtensions() {
+ public ClassToInstanceMap<Extension> getExtensions() {
return delegate().getExtensions();
}
import static java.util.Objects.requireNonNull;
import com.google.common.annotations.Beta;
+import com.google.common.collect.ImmutableMap;
import java.io.Closeable;
import java.io.Flushable;
import java.io.IOException;
import javax.xml.transform.dom.DOMSource;
import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.NonNullByDefault;
import org.opendaylight.yangtools.concepts.ExtensibleObject;
+import org.opendaylight.yangtools.concepts.ObjectExtension;
+import org.opendaylight.yangtools.rfc8528.model.api.MountPointLabel;
+import org.opendaylight.yangtools.yang.common.QName;
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;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
+import org.opendaylight.yangtools.yang.data.api.schema.MountPointContext;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
/**
* invoking {@link #endNode()}. Some entities supported nested entities, some do not, see below for restrictions.
*
* <p>
- * While this interface defines basic events, the event stream may be extended through
- * {@link NormalizedNodeStreamWriterExtension}s discoverable through {@link #getExtensions()} method. The set of these
- * extensions is immutable during the lifetime of a writer and may be freely cached.
+ * While this interface defines basic events, the event stream may be extended through {@link Extension}s, discoverable
+ * through {@link #getExtensions()} method. The set of these extensions is immutable during the lifetime of a writer and
+ * may be freely cached.
*
* <ul>
* <li>{@code container} - Container node representation, start event is emitted using
* Implementations of this interface must not hold user suppled objects and resources needlessly.
*/
public interface NormalizedNodeStreamWriter extends Closeable, Flushable,
- ExtensibleObject<NormalizedNodeStreamWriter, NormalizedNodeStreamWriterExtension> {
+ ExtensibleObject<NormalizedNodeStreamWriter, NormalizedNodeStreamWriter.Extension> {
/**
* Methods in this interface allow users to hint the underlying implementation about the sizing of container-like
* constructors (leafLists, containers, etc.). These hints may be taken into account by a particular implementation
@Override
void flush() throws IOException;
+
+ /**
+ * Extension interface for {@link NormalizedNodeStreamWriter}. Extensions should extend this interface and their
+ * instances should be made available through {@link NormalizedNodeStreamWriter#getExtensions()}.
+ */
+ interface Extension extends ObjectExtension<NormalizedNodeStreamWriter, Extension> {
+ // Marker interface
+ }
+
+ /**
+ * Extension to the NormalizedNodeStreamWriter with metadata support. Semantically this extends the event model of
+ * {@link NormalizedNodeStreamWriter} with a new event, {@link #metadata(ImmutableMap)}. This event is valid on any
+ * open node. This event may be emitted only once.
+ *
+ * <p>
+ * Note that some implementations of this interface, notably those targeting streaming XML, may require metadata to
+ * be emitted before any other events. Such requirement is communicated through {@link #requireMetadataFirst()} and
+ * users must honor it. If such requirement is not set, metadata may be emitted at any time.
+ *
+ * <p>
+ * Furthermore implementations targeting RFC7952 encoding towards external systems are required to handle metadata
+ * attached to {@code leaf-list} and {@code list} nodes by correctly extending them to each entry.
+ */
+ interface MetadataExtension extends Extension {
+ /**
+ * Emit a block of metadata associated with the currently-open node. The argument is a map of annotation names,
+ * as defined {@code md:annotation} extension. Values are normalized objects, which are required to be
+ * effectively-immutable.
+ *
+ * @param metadata Metadata block
+ * @throws NullPointerException if {@code metadata} is {@code null}
+ * @throws IllegalStateException when this method is invoked outside of an open node or metadata has already
+ * been emitted.
+ * @throws IOException if an underlying IO error occurs
+ */
+ void metadata(ImmutableMap<QName, Object> metadata) throws IOException;
+
+ /**
+ * Indicate whether metadata is required to be emitted just after an entry is open. The default implementation
+ * returns false.
+ *
+ * @return {@code true} if metadata must occur just after the start of an entry.
+ */
+ default boolean requireMetadataFirst() {
+ return false;
+ }
+ }
+
+ /**
+ * An {@link Extension} exposed by stream writers which can handle mount point data, notably providing
+ * the facilities to resolve a mount point schema and normalize mount point contents into a normalized structure.
+ */
+ @NonNullByDefault
+ interface MountPointExtension extends Extension {
+ /**
+ * Start a new mount point with a specific mount point context. The returned writer will be used to emit the
+ * content of the mount point, without touching the writer to which this extension is attached to. Once that is
+ * done, the returned writer will be {@link NormalizedNodeStreamWriter#close()}d, at which point the parent
+ * writer will be used again to emit the rest of the tree.
+ *
+ * @param label Mount point label
+ * @param mountCtx Mount point context
+ * @return A new NormalizedNodeStreamWriter
+ * @throws IOException if an error occurs
+ */
+ NormalizedNodeStreamWriter startMountPoint(MountPointLabel label, MountPointContext mountCtx)
+ throws IOException;
+ }
}
+++ /dev/null
-/*
- * Copyright (c) 2019 Pantheon Technologies, s.r.o. 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 org.opendaylight.yangtools.concepts.ObjectExtension;
-
-/**
- * Extension interface for {@link NormalizedNodeStreamWriter}. Extensions should extend this interface and their
- * instances should be made available through {@link NormalizedNodeStreamWriter#getExtensions()}.
- *
- * @author Robert Varga
- */
-@Beta
-public interface NormalizedNodeStreamWriterExtension extends
- ObjectExtension<NormalizedNodeStreamWriter, NormalizedNodeStreamWriterExtension> {
-
-}
+++ /dev/null
-/*
- * Copyright (c) 2019 PANTHEON.tech, s.r.o. 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.collect.ImmutableMap;
-import java.io.IOException;
-import org.opendaylight.yangtools.yang.common.QName;
-
-/**
- * Extension to the NormalizedNodeStreamWriter with metadata support. Semantically this extends the event model of
- * {@link NormalizedNodeStreamWriter} with a new event, {@link #metadata(ImmutableMap)}. This event is valid on any
- * open node. This event may be emitted only once.
- *
- * <p>
- * Note that some implementations of this interface, notably those targeting streaming XML, may require metadata to
- * be emitted before any other events. Such requirement is communicated through {@link #requireMetadataFirst()} and
- * users must honor it. If such requirement is not set, metadata may be emitted at any time.
- *
- * <p>
- * Furthermore implementations targeting RFC7952 encoding towards external systems are required to handle metadata
- * attached to {@code leaf-list} and {@code list} nodes by correctly extending them to each entry.
- */
-@Beta
-public interface StreamWriterMetadataExtension extends NormalizedNodeStreamWriterExtension {
- /**
- * Emit a block of metadata associated with the currently-open node. The argument is a map of annotation names,
- * as defined {@code md:annotation} extension. Values are normalized objects, which are required to be
- * effectively-immutable.
- *
- * @param metadata Metadata block
- * @throws NullPointerException if {@code metadata} is null
- * @throws IllegalStateException when this method is invoked outside of an open node or metadata has already been
- * emitted.
- * @throws IOException if an underlying IO error occurs
- */
- void metadata(ImmutableMap<QName, Object> metadata) throws IOException;
-
- /**
- * Indicate whether metadata is required to be emitted just after an entry is open. The default implementation
- * returns false.
- *
- * @return True if metadata must occur just after the start of an entry.
- */
- default boolean requireMetadataFirst() {
- return false;
- }
-}
+++ /dev/null
-/*
- * Copyright (c) 2019 PANTHEON.tech s.r.o. 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 java.io.IOException;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.yangtools.rfc8528.model.api.MountPointLabel;
-import org.opendaylight.yangtools.yang.data.api.schema.MountPointContext;
-
-/**
- * A {@link NormalizedNodeStreamWriterExtension} exposed by stream writers which can handle mount point data, notably
- * providing the facilities to resolve a mount point schema and normalize mount point contents into a normalized
- * structure.
- */
-@Beta
-@NonNullByDefault
-public interface StreamWriterMountPointExtension extends NormalizedNodeStreamWriterExtension {
- /**
- * Start a new mount point with a specific mount point context. The returned writer will be used to emit the content
- * of the mount point, without touching the writer to which this extension is attached to. Once that is done, the
- * returned writer will be {@link NormalizedNodeStreamWriter#close()}d, at which point the parent writer will be
- * used again to emit the rest of the tree.
- *
- * @param label Mount point label
- * @param mountCtx Mount point context
- * @return A new NormalizedNodeStreamWriter
- * @throws IOException if an error occurs
- */
- NormalizedNodeStreamWriter startMountPoint(MountPointLabel label, MountPointContext mountCtx) throws IOException;
-}
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedMetadata;
import org.opendaylight.yangtools.yang.data.api.schema.builder.NormalizedNodeBuilder;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.data.util.ImmutableNormalizedMetadata;
import org.opendaylight.yangtools.yang.data.util.ImmutableNormalizedMetadata.Builder;
/**
* A {@link NormalizedMetadata}-aware {@link ImmutableMetadataNormalizedNodeStreamWriter}. It advertizes the
- * {@link StreamWriterMetadataExtension} extension.
+ * {@link MetadataExtension} extension.
*/
@Beta
public class ImmutableMetadataNormalizedNodeStreamWriter extends ImmutableNormalizedNodeStreamWriter
- implements StreamWriterMetadataExtension {
+ implements MetadataExtension {
/**
* Snapshot of currently-open data- and metadatastate.
*/
}
@Override
- public final ClassToInstanceMap<NormalizedNodeStreamWriterExtension> getExtensions() {
- return ImmutableClassToInstanceMap.of(StreamWriterMetadataExtension.class, this);
+ public final ClassToInstanceMap<Extension> getExtensions() {
+ return ImmutableClassToInstanceMap.of(MetadataExtension.class, this);
}
@Override
import org.opendaylight.yangtools.yang.data.api.schema.MountPointContext;
import org.opendaylight.yangtools.yang.data.api.schema.stream.ForwardingNormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriterExtension;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMountPointExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MountPointExtension;
// FIXME: document usage of this
@Beta
public abstract class ImmutableMountPointNormalizedNodeStreamWriter extends ImmutableNormalizedNodeStreamWriter
- implements StreamWriterMountPointExtension {
+ implements MountPointExtension {
protected ImmutableMountPointNormalizedNodeStreamWriter(final NormalizationResultHolder holder) {
super(holder);
}
@Override
- public final ClassToInstanceMap<NormalizedNodeStreamWriterExtension> getExtensions() {
- return ImmutableClassToInstanceMap.of(StreamWriterMountPointExtension.class, this);
+ public final ClassToInstanceMap<Extension> getExtensions() {
+ return ImmutableClassToInstanceMap.of(MountPointExtension.class, this);
}
@Override
import org.opendaylight.yangtools.rfc8528.model.api.MountPointLabel;
import org.opendaylight.yangtools.yang.data.api.schema.MountPointContextFactory;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
/**
}
@Override
- public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
- throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer, final MetadataExtension metaWriter) throws IOException {
super.write(writer, metaWriter);
if (mountedData != null) {
mountedData.write(writer);
import org.opendaylight.yangtools.yang.common.QName;
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.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
/**
* @throws IOException reported when thrown by the writer.
*/
public final void write(final NormalizedNodeStreamWriter writer) throws IOException {
- write(writer, writer.getExtensions().getInstance(StreamWriterMetadataExtension.class));
+ write(writer, writer.getExtensions().getInstance(MetadataExtension.class));
}
- protected abstract void write(NormalizedNodeStreamWriter writer,
- @Nullable StreamWriterMetadataExtension metaWriter) throws IOException;
+ protected abstract void write(NormalizedNodeStreamWriter writer, @Nullable MetadataExtension metaWriter)
+ throws IOException;
protected final NodeIdentifier provideNodeIdentifier() {
return NodeIdentifier.create(schema.getQName());
}
- protected final void writeMetadata(final StreamWriterMetadataExtension metaWriter) throws IOException {
+ protected final void writeMetadata(final MetadataExtension metaWriter) throws IOException {
if (metaWriter != null && attributes != null && !attributes.isEmpty()) {
metaWriter.metadata(attributes);
}
import java.io.IOException;
import javax.xml.transform.dom.DOMSource;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
/**
* Represents a YANG anyxml node.
*/
public class AnyXmlNodeDataWithSchema extends SimpleNodeDataWithSchema<AnyxmlSchemaNode> {
-
public AnyXmlNodeDataWithSchema(final AnyxmlSchemaNode dataSchemaNode) {
super(dataSchemaNode);
}
@Override
- public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
+ public void write(final NormalizedNodeStreamWriter writer, final MetadataExtension metaWriter)
throws IOException {
writer.nextDataSchemaNode(getSchema());
if (writer.startAnyxmlNode(provideNodeIdentifier(), DOMSource.class)) {
import java.io.IOException;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
@Beta
}
@Override
- protected void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
+ protected void write(final NormalizedNodeStreamWriter writer, final MetadataExtension metaWriter)
throws IOException {
writer.nextDataSchemaNode(getSchema());
if (writer.startAnydataNode(provideNodeIdentifier(), getObjectModel())) {
import java.io.IOException;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
}
@Override
- public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
- throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer, final MetadataExtension metaWriter) throws IOException {
writer.nextDataSchemaNode(getSchema());
writer.startChoiceNode(provideNodeIdentifier(), childSizeHint());
super.write(writer, metaWriter);
import java.util.Map.Entry;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
}
@Override
- public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
- throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer, final MetadataExtension metaWriter) throws IOException {
for (AbstractNodeDataWithSchema<?> child : children) {
child.write(writer, metaWriter);
}
import java.io.IOException;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.model.api.ContainerLike;
/**
* Represents a YANG container node.
*/
public class ContainerNodeDataWithSchema extends AbstractMountPointDataWithSchema<ContainerLike> {
-
public ContainerNodeDataWithSchema(final ContainerLike schema) {
super(schema);
}
@Override
- public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
- throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer, final MetadataExtension metaWriter) throws IOException {
writer.nextDataSchemaNode(getSchema());
writer.startContainerNode(provideNodeIdentifier(), childSizeHint());
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedMetadata;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.data.util.ImmutableNormalizedMetadata.Builder;
/**
- * A simple {@link StreamWriterMetadataExtension} implementation, which takes care of building
- * {@link NormalizedMetadata} based on additional nesting instructions.
+ * A simple {@link MetadataExtension} implementation, which takes care of building {@link NormalizedMetadata} based on
+ * additional nesting instructions.
*/
@Beta
-public final class ImmutableNormalizedMetadataStreamWriter implements StreamWriterMetadataExtension {
+public final class ImmutableNormalizedMetadataStreamWriter implements MetadataExtension {
private final Deque<Builder> builders = new ArrayDeque<>();
private ImmutableNormalizedMetadata result;
import java.io.IOException;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
/**
}
@Override
- public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
- throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer, final MetadataExtension metaWriter) throws IOException {
writer.nextDataSchemaNode(getSchema());
writer.startLeafSetEntryNode(new NodeWithValue<>(getSchema().getQName(), getValue()));
import java.io.IOException;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
/**
}
@Override
- public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
- throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer, final MetadataExtension metaWriter) throws IOException {
final LeafListSchemaNode schema = getSchema();
writer.nextDataSchemaNode(schema);
if (schema.isUserOrdered()) {
import java.io.IOException;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
/**
}
@Override
- public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
- throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer, final MetadataExtension metaWriter) throws IOException {
writer.nextDataSchemaNode(getSchema());
writer.startLeafNode(provideNodeIdentifier());
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.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
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, final StreamWriterMetadataExtension metaWriter)
+ public void write(final NormalizedNodeStreamWriter writer, final MetadataExtension metaWriter)
throws IOException {
writer.nextDataSchemaNode(getSchema());
final NodeIdentifierWithPredicates identifier = NodeIdentifierWithPredicates.of(getSchema().getQName(),
}
@Override
- public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
+ public void write(final NormalizedNodeStreamWriter writer, final MetadataExtension metaWriter)
throws IOException {
writer.nextDataSchemaNode(getSchema());
writer.startUnkeyedListItem(provideNodeIdentifier(), childSizeHint());
import java.io.IOException;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
/**
}
@Override
- public void write(final NormalizedNodeStreamWriter writer, final StreamWriterMetadataExtension metaWriter)
- throws IOException {
+ public void write(final NormalizedNodeStreamWriter writer, final MetadataExtension metaWriter) throws IOException {
final ListSchemaNode schema = getSchema();
writer.nextDataSchemaNode(schema);
if (schema.getKeyDefinition().isEmpty()) {
import org.opendaylight.yangtools.yang.data.api.schema.MountPointContextFactory.ContainerName;
import org.opendaylight.yangtools.yang.data.api.schema.MountPointException;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMountPointExtension;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MountPointExtension;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
}
void write(final @NonNull NormalizedNodeStreamWriter writer) throws IOException {
- final StreamWriterMountPointExtension mountWriter = writer.getExtensions()
- .getInstance(StreamWriterMountPointExtension.class);
+ final var mountWriter = writer.getExtensions().getInstance(MountPointExtension.class);
if (mountWriter == null) {
LOG.debug("Writer {} does not support mount points, ignoring data in {}", writer, getIdentifier());
return;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedMetadata;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.MetadataExtension;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
/**
* A utility class to attach {@link NormalizedMetadata} into a NormalizedNode stream, such as the one produced by
final PathArgument metaId = metadata.getIdentifier();
checkArgument(dataId.equals(metaId), "Mismatched data %s and metadata %s", dataId, metaId);
- final StreamWriterMetadataExtension metaWriter = writer.getExtensions()
- .getInstance(StreamWriterMetadataExtension.class);
+ final var metaWriter = writer.getExtensions().getInstance(MetadataExtension.class);
final NormalizedNodeStreamWriter delegate = metaWriter == null ? writer
: new NormalizedNodeStreamWriterMetadataDecorator(writer, metaWriter, metadata);
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedMetadata;
import org.opendaylight.yangtools.yang.data.api.schema.stream.ForwardingNormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetadataExtension;
/**
* A simple decorator on top of a NormalizedNodeStreamWriter, which attaches NormalizedMetadata to the event stream,
*/
final class NormalizedNodeStreamWriterMetadataDecorator extends ForwardingNormalizedNodeStreamWriter {
private final Deque<NormalizedMetadata> stack = new ArrayDeque<>();
- private final StreamWriterMetadataExtension metaWriter;
private final NormalizedNodeStreamWriter writer;
+ private final MetadataExtension metaWriter;
private final NormalizedMetadata metadata;
private int absentDepth = 0;
NormalizedNodeStreamWriterMetadataDecorator(final NormalizedNodeStreamWriter writer,
- final StreamWriterMetadataExtension metaWriter, final NormalizedMetadata metadata) {
+ final MetadataExtension metaWriter, final NormalizedMetadata metadata) {
this.writer = requireNonNull(writer);
this.metaWriter = requireNonNull(metaWriter);
this.metadata = requireNonNull(metadata);