Remove BindingToNormalizedStreamWriter.create() 84/106184/2
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 20 Apr 2023 20:30:12 +0000 (22:30 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 27 May 2023 10:04:33 +0000 (12:04 +0200)
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 <robert.varga@pantheon.tech>
(cherry picked from commit 733da7ad2bfb1ad7e484291fa1e913ae8e8cd0bd)

binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BindingToNormalizedStreamWriter.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecContext.java

index 1e8eb1c81783c071166f2bb22711e243ce61c365..db04762566b224c4416603790c60fab6da28160d 100644 (file)
@@ -204,37 +204,38 @@ public final class BindingCodecContext extends AbstractBindingNormalizedNodeSeri
             final InstanceIdentifier<?> path, final NormalizedNodeStreamWriter domWriter) {
         final List<YangInstanceIdentifier.PathArgument> 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<? extends DataContainer> rpcInputOrOutput,
             final NormalizedNodeStreamWriter domWriter) {
-        return root.getRpc(rpcInputOrOutput).createWriter(domWriter);
+        return new BindingToNormalizedStreamWriter(root.getRpc(rpcInputOrOutput), domWriter);
     }
 
     @Override
     public BindingStreamEventWriter newNotificationWriter(final Class<? extends Notification<?>> notification,
             final NormalizedNodeStreamWriter domWriter) {
-        return root.getNotification(notification).createWriter(domWriter);
+        return new BindingToNormalizedStreamWriter(root.getNotification(notification), domWriter);
     }
 
     @Override
     public BindingStreamEventWriter newActionInputWriter(final Class<? extends Action<?, ?, ?>> action,
             final NormalizedNodeStreamWriter domWriter) {
-        return getActionCodec(action).input().createWriter(domWriter);
+        return new BindingToNormalizedStreamWriter(getActionCodec(action).input(), domWriter);
     }
 
     @Override
     public BindingStreamEventWriter newActionOutputWriter(final Class<? extends Action<?, ?, ?>> action,
             final NormalizedNodeStreamWriter domWriter) {
-        return getActionCodec(action).output().createWriter(domWriter);
+        return new BindingToNormalizedStreamWriter(getActionCodec(action).output(), domWriter);
     }
 
     @NonNull DataContainerCodecContext<?,?> getCodecContextNode(final InstanceIdentifier<?> binding,
index 5e88eabade3149c24a829091d1622af0825a3856..7f5c928b18a4b818171da0439b27891c9a9b72ad 100644 (file)
@@ -36,7 +36,7 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 final class BindingToNormalizedStreamWriter implements AnydataBindingStreamWriter,
         Delegator<NormalizedNodeStreamWriter> {
     private final Deque<NodeCodecContext> 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 extends YangInstanceIdentifier.PathArgument> T enter(final String localName, final Class<T> 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;
index a8f4dc69d21bb8bd0d7ffaae1138417ea5dde8ae..c9b71f032d743114f40c73e18dcb29d407556797 100644 (file)
@@ -175,10 +175,6 @@ abstract class DataContainerCodecContext<D extends DataObject, T extends Runtime
         return new CachingNormalizedNodeCodec<>(this, ImmutableSet.copyOf(cacheSpecifier));
     }
 
-    @NonNull BindingStreamEventWriter createWriter(final NormalizedNodeStreamWriter domWriter) {
-        return BindingToNormalizedStreamWriter.create(this, domWriter);
-    }
-
     protected final <V> @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<D extends DataObject, T extends Runtime
     @Override
     public void writeAsNormalizedNode(final D data, final NormalizedNodeStreamWriter writer) {
         try {
-            eventStreamSerializer().serialize(data, createWriter(writer));
+            eventStreamSerializer().serialize(data, new BindingToNormalizedStreamWriter(this, writer));
         } catch (final IOException e) {
             throw new IllegalStateException("Failed to serialize Binding DTO",e);
         }