From 61f4c3d92e2b8c6170127f24f11031d021f4dd7f Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 20 Apr 2023 22:30:12 +0200 Subject: [PATCH] Remove BindingToNormalizedStreamWriter.create() We have a lot of indirection going on for little real benefit. Reduce the tangle by replacing calls to create() with plain constructor and inlining callers. Change-Id: Ibaac2f17d1c275e42ad281767ba8a50c6318c649 Signed-off-by: Robert Varga (cherry picked from commit 733da7ad2bfb1ad7e484291fa1e913ae8e8cd0bd) --- .../binding/dom/codec/impl/BindingCodecContext.java | 13 +++++++------ .../codec/impl/BindingToNormalizedStreamWriter.java | 13 ++++--------- .../dom/codec/impl/DataContainerCodecContext.java | 6 +----- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingCodecContext.java index 1e8eb1c817..db04762566 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingCodecContext.java @@ -204,37 +204,38 @@ public final class BindingCodecContext extends AbstractBindingNormalizedNodeSeri final InstanceIdentifier path, final NormalizedNodeStreamWriter domWriter) { final List yangArgs = new LinkedList<>(); final DataContainerCodecContext codecContext = getCodecContextNode(path, yangArgs); - return Map.entry(YangInstanceIdentifier.create(yangArgs), codecContext.createWriter(domWriter)); + return Map.entry(YangInstanceIdentifier.create(yangArgs), + new BindingToNormalizedStreamWriter(codecContext, domWriter)); } @Override public BindingStreamEventWriter newWriter(final InstanceIdentifier path, final NormalizedNodeStreamWriter domWriter) { - return getCodecContextNode(path, null).createWriter(domWriter); + return new BindingToNormalizedStreamWriter(getCodecContextNode(path, null), domWriter); } @Override public BindingStreamEventWriter newRpcWriter(final Class rpcInputOrOutput, final NormalizedNodeStreamWriter domWriter) { - return root.getRpc(rpcInputOrOutput).createWriter(domWriter); + return new BindingToNormalizedStreamWriter(root.getRpc(rpcInputOrOutput), domWriter); } @Override public BindingStreamEventWriter newNotificationWriter(final Class> notification, final NormalizedNodeStreamWriter domWriter) { - return root.getNotification(notification).createWriter(domWriter); + return new BindingToNormalizedStreamWriter(root.getNotification(notification), domWriter); } @Override public BindingStreamEventWriter newActionInputWriter(final Class> action, final NormalizedNodeStreamWriter domWriter) { - return getActionCodec(action).input().createWriter(domWriter); + return new BindingToNormalizedStreamWriter(getActionCodec(action).input(), domWriter); } @Override public BindingStreamEventWriter newActionOutputWriter(final Class> action, final NormalizedNodeStreamWriter domWriter) { - return getActionCodec(action).output().createWriter(domWriter); + return new BindingToNormalizedStreamWriter(getActionCodec(action).output(), domWriter); } @NonNull DataContainerCodecContext getCodecContextNode(final InstanceIdentifier binding, diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingToNormalizedStreamWriter.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingToNormalizedStreamWriter.java index 5e88eabade..7f5c928b18 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingToNormalizedStreamWriter.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingToNormalizedStreamWriter.java @@ -36,7 +36,7 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; final class BindingToNormalizedStreamWriter implements AnydataBindingStreamWriter, Delegator { private final Deque schema = new ArrayDeque<>(); - private final NormalizedNodeStreamWriter delegate; + private final @NonNull NormalizedNodeStreamWriter delegate; private final NodeCodecContext rootNodeSchema; BindingToNormalizedStreamWriter(final NodeCodecContext rootNodeSchema, final NormalizedNodeStreamWriter delegate) { @@ -44,11 +44,6 @@ final class BindingToNormalizedStreamWriter implements AnydataBindingStreamWrite this.delegate = requireNonNull(delegate); } - static @NonNull BindingToNormalizedStreamWriter create(final NodeCodecContext schema, - final NormalizedNodeStreamWriter delegate) { - return new BindingToNormalizedStreamWriter(schema, delegate); - } - private void emitSchema(final Object schemaNode) { delegate.nextDataSchemaNode((DataSchemaNode) schemaNode); } @@ -65,7 +60,7 @@ final class BindingToNormalizedStreamWriter implements AnydataBindingStreamWrite } else { next = current(); } - this.schema.push(next); + schema.push(next); return (NodeIdentifier) current().getDomPathArgument(); } @@ -79,7 +74,7 @@ final class BindingToNormalizedStreamWriter implements AnydataBindingStreamWrite checkArgument(current() instanceof DataContainerCodecContext, "Could not start node %s", name); next = ((DataContainerCodecContext) current()).streamChild((Class) name); } - this.schema.push(next); + schema.push(next); T arg = (T) next.getDomPathArgument(); return arg; } @@ -87,7 +82,7 @@ final class BindingToNormalizedStreamWriter implements AnydataBindingStreamWrite private T enter(final String localName, final Class identifier) { NodeCodecContext current = current(); NodeCodecContext next = ((DataObjectCodecContext) current).getLeafChild(localName); - this.schema.push(next); + schema.push(next); @SuppressWarnings("unchecked") T arg = (T) next.getDomPathArgument(); return arg; diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecContext.java index a8f4dc69d2..c9b71f032d 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecContext.java @@ -175,10 +175,6 @@ abstract class DataContainerCodecContext(this, ImmutableSet.copyOf(cacheSpecifier)); } - @NonNull BindingStreamEventWriter createWriter(final NormalizedNodeStreamWriter domWriter) { - return BindingToNormalizedStreamWriter.create(this, domWriter); - } - protected final @NonNull V childNonNull(final @Nullable V nullable, final YangInstanceIdentifier.PathArgument child, final String message, final Object... args) { if (nullable == null) { @@ -274,7 +270,7 @@ abstract class DataContainerCodecContext