From: Robert Varga Date: Mon, 30 Sep 2019 09:40:29 +0000 (+0200) Subject: Allow startAnyxmlNode() to handle differing object models X-Git-Tag: v4.0.0~9 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=78db01f74de82201a6803951b025f783cd8c0ad8;p=yangtools.git Allow startAnyxmlNode() to handle differing object models Anyxml can have a number of underlying object models, with the most common being DOMSource. This changes the entrypoint to work the same as anydata, allowing implementations to support different models. Change-Id: I06ec1e5d46e7bc2287b239ea97811d58544c8c2b Signed-off-by: Robert Varga --- diff --git a/yang/rfc7952-data-util/src/main/java/org/opendaylight/yangtools/rfc7952/data/util/NormalizedNodeStreamWriterMetadataDecorator.java b/yang/rfc7952-data-util/src/main/java/org/opendaylight/yangtools/rfc7952/data/util/NormalizedNodeStreamWriterMetadataDecorator.java index 0e705af7cf..cbcd22b348 100644 --- a/yang/rfc7952-data-util/src/main/java/org/opendaylight/yangtools/rfc7952/data/util/NormalizedNodeStreamWriterMetadataDecorator.java +++ b/yang/rfc7952-data-util/src/main/java/org/opendaylight/yangtools/rfc7952/data/util/NormalizedNodeStreamWriterMetadataDecorator.java @@ -123,9 +123,12 @@ final class NormalizedNodeStreamWriterMetadataDecorator extends ForwardingNormal } @Override - public void startAnyxmlNode(final NodeIdentifier name) throws IOException { - super.startAnyxmlNode(name); - enterMetadataNode(name); + public boolean startAnyxmlNode(final NodeIdentifier name, final Class objectModel) throws IOException { + final boolean ret = super.startAnyxmlNode(name, objectModel); + if (ret) { + enterMetadataNode(name); + } + return ret; } @Override diff --git a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/ForwardingNormalizedNodeStreamWriter.java b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/ForwardingNormalizedNodeStreamWriter.java index aa7663442a..e5f5ca308e 100644 --- a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/ForwardingNormalizedNodeStreamWriter.java +++ b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/ForwardingNormalizedNodeStreamWriter.java @@ -88,8 +88,8 @@ public abstract class ForwardingNormalizedNodeStreamWriter extends ForwardingObj } @Override - public void startAnyxmlNode(final NodeIdentifier name) throws IOException { - delegate().startAnyxmlNode(name); + public boolean startAnyxmlNode(final NodeIdentifier name, final Class objectModel) throws IOException { + return delegate().startAnyxmlNode(name, objectModel); } @Override diff --git a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/LoggingNormalizedNodeStreamWriter.java b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/LoggingNormalizedNodeStreamWriter.java index db4952b1dc..c5100112e6 100644 --- a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/LoggingNormalizedNodeStreamWriter.java +++ b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/LoggingNormalizedNodeStreamWriter.java @@ -130,9 +130,10 @@ public final class LoggingNormalizedNodeStreamWriter implements NormalizedNodeSt } @Override - public void startAnyxmlNode(final NodeIdentifier name) { + public boolean startAnyxmlNode(final NodeIdentifier name, final Class objectModel) { LOG.debug("{}{}(anyxml)", ind(), name); incIndent(); + return true; } @Override diff --git a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeStreamWriter.java b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeStreamWriter.java index 5f06ab7adb..a9d2451d9c 100644 --- a/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeStreamWriter.java +++ b/yang/yang-data-api/src/main/java/org/opendaylight/yangtools/yang/data/api/schema/stream/NormalizedNodeStreamWriter.java @@ -59,7 +59,7 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; *
  • {@code leaf-list} - Leaf list start is emitted using {@link #startLeafSet(NodeIdentifier, int)}. Individual * leaf-list entries are emitted using {@link #startLeafSetEntryNode(NodeWithValue)}. * - *
  • {@code anyxml} - An anyxml node event is emitted using {@link #startAnyxmlNode(NodeIdentifier)}.
  • + *
  • {@code anyxml} - An anyxml node event is emitted using {@link #startAnyxmlNode(NodeIdentifier, Class)}.
  • * *
  • {@code choice} - Choice node event is emitted by {@link #startChoiceNode(NodeIdentifier, int)} event.
  • * @@ -154,7 +154,7 @@ public interface NormalizedNodeStreamWriter extends Closeable, Flushable, * Emits start of new container. Valid sub-events are: *