Rename NormalizedNodeStreamWriterExtension 05/106005/6
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 16 May 2023 22:01:55 +0000 (00:01 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 17 May 2023 09:30:32 +0000 (11:30 +0200)
Centralize the extension model in NormalizedNodeStreamWriter, shortening
names of the interfaces/classes involved. This also makes extensions
much more discoverable -- and we only have two of them :)

JIRA: YANGTOOLS-1172
Change-Id: Ie30f07e4fa618b162b38ca70652930112fcdc3cd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
26 files changed:
codec/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONNormalizedNodeStreamWriter.java
codec/yang-data-codec-xml/src/main/java/org/opendaylight/yangtools/yang/data/codec/xml/XMLStreamNormalizedNodeStreamWriter.java
data/rfc8528-data-util/src/main/java/org/opendaylight/yangtools/rfc8528/data/util/MountPointNormalizedNodeWriter.java
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/ForwardingNormalizedNodeStreamWriter.java
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeStreamWriter.java
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeStreamWriterExtension.java [deleted file]
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/StreamWriterMetadataExtension.java [deleted file]
data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/StreamWriterMountPointExtension.java [deleted file]
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableMetadataNormalizedNodeStreamWriter.java
data/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/ImmutableMountPointNormalizedNodeStreamWriter.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractMountPointDataWithSchema.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractNodeDataWithSchema.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AnyXmlNodeDataWithSchema.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AnydataNodeDataWithSchema.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ChoiceNodeDataWithSchema.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/CompositeNodeDataWithSchema.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ContainerNodeDataWithSchema.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ImmutableNormalizedMetadataStreamWriter.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/LeafListEntryNodeDataWithSchema.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/LeafListNodeDataWithSchema.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/LeafNodeDataWithSchema.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ListEntryNodeDataWithSchema.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ListNodeDataWithSchema.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/MountPointData.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/NormalizedMetadataWriter.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/NormalizedNodeStreamWriterMetadataDecorator.java

index d17a9b345c1522f8dc17b4d487aa9d27a290280f..7a9e4afdd5baa172b6ab56ad4a59b749bf200b9b 100644 (file)
@@ -29,8 +29,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithV
 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;
@@ -52,8 +51,7 @@ import org.w3c.dom.Text;
  * <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) {
@@ -310,8 +308,8 @@ public abstract class JSONNormalizedNodeStreamWriter implements NormalizedNodeSt
     }
 
     @Override
-    public ClassToInstanceMap<NormalizedNodeStreamWriterExtension> getExtensions() {
-        return ImmutableClassToInstanceMap.of(StreamWriterMountPointExtension.class, this);
+    public ClassToInstanceMap<Extension> getExtensions() {
+        return ImmutableClassToInstanceMap.of(MountPointExtension.class, this);
     }
 
     @Override
index d8197b1092206b217164c01cbb349367180bcbd1..ffcda336b7911b0d6e535d155772e33b0a304c05 100644 (file)
@@ -29,8 +29,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 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;
@@ -53,7 +52,7 @@ import org.w3c.dom.Node;
  * 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();
@@ -166,8 +165,8 @@ public abstract sealed class XMLStreamNormalizedNodeStreamWriter<T>
     }
 
     @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);
@@ -294,9 +293,10 @@ public abstract sealed class XMLStreamNormalizedNodeStreamWriter<T>
                     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 {
index 24814d10c99c2df6c99abb2bbbb6573e48af3d3b..76fb72536ea004cbad6f8c3a16b19fcd7b4b07b0 100644 (file)
@@ -18,8 +18,8 @@ import org.opendaylight.yangtools.rfc8528.data.api.MountPointNode;
 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
@@ -39,9 +39,9 @@ public abstract class MountPointNormalizedNodeWriter extends NormalizedNodeWrite
     }
 
     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);
         }
@@ -62,8 +62,7 @@ public abstract class MountPointNormalizedNodeWriter extends NormalizedNodeWrite
     }
 
     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);
     }
 
@@ -74,8 +73,7 @@ public abstract class MountPointNormalizedNodeWriter extends NormalizedNodeWrite
     @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);
     }
index 677947bff1b93dff9722fdba64511b9efff95378..84aaed11c1db9154f1353b371096808602782a10 100644 (file)
@@ -22,7 +22,7 @@ public abstract class ForwardingNormalizedNodeStreamWriter extends ForwardingObj
     protected abstract NormalizedNodeStreamWriter delegate();
 
     @Override
-    public ClassToInstanceMap<NormalizedNodeStreamWriterExtension> getExtensions() {
+    public ClassToInstanceMap<Extension> getExtensions() {
         return delegate().getExtensions();
     }
 
index 9a800ec2366ad09755169e0a485881c1db096091..baf60dc0eca8dfd8309b0c2cbaa7e8453429e8ed 100644 (file)
@@ -10,16 +10,22 @@ package org.opendaylight.yangtools.yang.data.api.schema.stream;
 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;
 
 /**
@@ -30,9 +36,9 @@ 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
@@ -74,7 +80,7 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
  * 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
@@ -379,4 +385,72 @@ public interface NormalizedNodeStreamWriter extends Closeable, Flushable,
 
     @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;
+    }
 }
diff --git a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeStreamWriterExtension.java b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeStreamWriterExtension.java
deleted file mode 100644 (file)
index 34d32d3..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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> {
-
-}
diff --git a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/StreamWriterMetadataExtension.java b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/StreamWriterMetadataExtension.java
deleted file mode 100644 (file)
index 104bd1e..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * 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;
-    }
-}
diff --git a/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/StreamWriterMountPointExtension.java b/data/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/StreamWriterMountPointExtension.java
deleted file mode 100644 (file)
index 1e7cd03..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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;
-}
index 080ee79843d1ed1d3aa8b11f4709d3842c83b243..da45e0daff9089abb114c304b656db5db27b52f6 100644 (file)
@@ -22,18 +22,17 @@ 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.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.
      */
@@ -70,8 +69,8 @@ public class ImmutableMetadataNormalizedNodeStreamWriter extends ImmutableNormal
     }
 
     @Override
-    public final ClassToInstanceMap<NormalizedNodeStreamWriterExtension> getExtensions() {
-        return ImmutableClassToInstanceMap.of(StreamWriterMetadataExtension.class, this);
+    public final ClassToInstanceMap<Extension> getExtensions() {
+        return ImmutableClassToInstanceMap.of(MetadataExtension.class, this);
     }
 
     @Override
index 58c917c3eb583022b72f2a77c689606d26e7b561..09fb7b3e4b33339236609b401e08517c1577457e 100644 (file)
@@ -18,20 +18,19 @@ import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 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
index c17577e7934f36fbc3ebd93b5382ee8ff0ffd66b..0ed63fd41414e96d716b566b5df3722a6a4221a9 100644 (file)
@@ -14,7 +14,7 @@ import java.io.IOException;
 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;
 
 /**
@@ -31,8 +31,7 @@ public abstract class AbstractMountPointDataWithSchema<T extends 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);
index 4052a1ed9d3648dcbad4a2124a8e5b7a13acc9ce..2fc19943c472742f0c8c8fa06a232fca2f6633df 100644 (file)
@@ -19,7 +19,7 @@ import org.eclipse.jdt.annotation.Nullable;
 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;
 
 /**
@@ -71,17 +71,17 @@ public abstract class AbstractNodeDataWithSchema<T extends 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);
         }
index f261fcf808f1dc58c82dfbc093207ac207332a8e..5274bb82c0ee1a96b3477a16f65bcf8d12637676 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.yangtools.yang.data.util;
 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;
 
 /**
@@ -21,13 +21,12 @@ 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)) {
index 0d68ef1603c6bd049c23f0bd834058d6205fb689..8860b33521c5404b0e8cf2c337d5a3dad5efe80e 100644 (file)
@@ -15,7 +15,7 @@ import com.google.common.annotations.Beta;
 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
@@ -44,7 +44,7 @@ public class AnydataNodeDataWithSchema extends SimpleNodeDataWithSchema<AnydataS
     }
 
     @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())) {
index 6c535bba6f1fc9542fe9b2073f3f9ea90040e958..acba44383c2764a882cee6714c96485fb859ea01 100644 (file)
@@ -11,7 +11,7 @@ import static com.google.common.base.Verify.verify;
 
 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;
@@ -45,8 +45,7 @@ final class ChoiceNodeDataWithSchema extends CompositeNodeDataWithSchema<ChoiceS
     }
 
     @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);
index 3f65490b13ca12742842f82542dd85315038cb36..37d6d5730c9008c5b5f8a8dcc651f56e0d335f71 100644 (file)
@@ -20,7 +20,7 @@ import java.util.List;
 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;
@@ -253,8 +253,7 @@ public class CompositeNodeDataWithSchema<T extends DataSchemaNode> extends Abstr
     }
 
     @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);
         }
index bc222e0c0d919e9e0ee57d75d5082dcc00da49f3..d052c526d5cb2c2bdf00d034e8ef9627240e38e0 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.data.util;
 
 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;
 
 /**
@@ -20,14 +20,12 @@ 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());
index d811023169bae2e2420201e43cafd67012c94faf..23e64a194567a8985ddb2b838e9d36294f309e5d 100644 (file)
@@ -18,15 +18,15 @@ import java.util.Optional;
 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;
index 8a806bf373853c3c2211a2b45f44fdfda220a368..25a16edb87873a75142fac1f81cafe4dd35bda58 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.yangtools.yang.data.util;
 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;
 
 /**
@@ -26,8 +26,7 @@ public class LeafListEntryNodeDataWithSchema extends SimpleNodeDataWithSchema<Le
     }
 
     @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()));
index 2de3ddad2f4e984c2c85b5d7c19274f0060bee30..5bd76ea803b5843ce91503c8f83b142ed6221968 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.data.util;
 
 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;
 
 /**
@@ -26,8 +26,7 @@ public class LeafListNodeDataWithSchema extends CompositeNodeDataWithSchema<Leaf
     }
 
     @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()) {
index 2f5ed7e6cf495e76771f44dcf207d98be21be7f9..650b957e39ec76937bb0a1daa9bbd78de3387173 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.data.util;
 
 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;
 
 /**
@@ -25,8 +25,7 @@ public class LeafNodeDataWithSchema extends SimpleNodeDataWithSchema<LeafSchemaN
     }
 
     @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());
index feeaf0f6046cc469b4831d002f8a0538141727ac..eabf08b8846e50de92d2eae60664d6f974a162df 100644 (file)
@@ -18,7 +18,7 @@ import org.opendaylight.yangtools.util.ImmutableMapTemplate;
 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;
@@ -55,7 +55,7 @@ public abstract class ListEntryNodeDataWithSchema extends AbstractMountPointData
         }
 
         @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(),
@@ -74,7 +74,7 @@ public abstract class ListEntryNodeDataWithSchema extends AbstractMountPointData
         }
 
         @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());
index a3c399a4e8ce2c497fc6c52edd996ebe37efcf3c..ea741f4317df7586c57782f877ae19976a68102e 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.yangtools.yang.data.util;
 
 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;
 
 /**
@@ -26,8 +26,7 @@ public class ListNodeDataWithSchema extends CompositeNodeDataWithSchema<ListSche
     }
 
     @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()) {
index 8885d7637b98005fc61a38ecefbd74a299a9f622..0a1ac5cd1055703cbbd2b62209dec182d33e7386 100644 (file)
@@ -25,7 +25,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.MountPointContextFactory;
 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;
 
@@ -64,8 +64,7 @@ public final class MountPointData extends AbstractSimpleIdentifiable<MountPointL
     }
 
     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;
index f9e52179a44faebd2053553d1f615d1b61904548..69e06ad8f35fce0d6a3ff5a5b61507da456db79d 100644 (file)
@@ -19,8 +19,8 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum
 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
@@ -105,8 +105,7 @@ public final class NormalizedMetadataWriter implements Closeable, Flushable {
         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);
 
index 2ed27aa962c6f331972b63cca0d2e2f9d42cd12a..f5bc6c591211faabaa5625fabc3236bf33a4c268 100644 (file)
@@ -23,7 +23,6 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum
 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,
@@ -31,14 +30,14 @@ import org.opendaylight.yangtools.yang.data.api.schema.stream.StreamWriterMetada
  */
 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);