Hide DataObjectSerializer
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 20 Jun 2023 10:09:14 +0000 (12:09 +0200)
committerAnil Belur <abelur@linuxfoundation.org>
Wed, 19 Jun 2024 00:41:46 +0000 (10:41 +1000)
Promote this class to a hidden implementation detail.

Change-Id: Ibf48f98cd9b9175b8a22eca102bbeb6162ccac67
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
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/DataObjectSerializer.java

index f6050608fff13a3fc565102a595da8b95521ae3e..eeeafb072152fc61fc272bca872bc2cf99efa851 100644 (file)
@@ -53,7 +53,6 @@ import org.opendaylight.mdsal.binding.loader.BindingClassLoader;
 import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeContext;
 import org.opendaylight.mdsal.binding.runtime.api.ListRuntimeType;
 import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
-import org.opendaylight.yangtools.concepts.Delegator;
 import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.util.ClassLoaderUtils;
 import org.opendaylight.yangtools.yang.binding.Action;
@@ -104,24 +103,6 @@ import org.slf4j.LoggerFactory;
 @MetaInfServices(value = BindingDOMCodecServices.class)
 public final class BindingCodecContext extends AbstractBindingNormalizedNodeSerializer
         implements BindingDOMCodecServices, Immutable, CodecContextFactory, DataObjectSerializerRegistry {
-    private final class DataObjectSerializerProxy implements DataObjectSerializer, Delegator<DataObjectStreamer<?>> {
-        private final @NonNull DataObjectStreamer<?> delegate;
-
-        DataObjectSerializerProxy(final DataObjectStreamer<?> delegate) {
-            this.delegate = requireNonNull(delegate);
-        }
-
-        @Override
-        public DataObjectStreamer<?> getDelegate() {
-            return delegate;
-        }
-
-        @Override
-        public void serialize(final DataObject obj, final BindingStreamEventWriter stream) throws IOException {
-            delegate.serialize(BindingCodecContext.this, obj, stream);
-        }
-    }
-
     private static final Logger LOG = LoggerFactory.getLogger(BindingCodecContext.class);
     private static final @NonNull NodeIdentifier FAKE_NODEID = new NodeIdentifier(QName.create("fake", "fake"));
     private static final File BYTECODE_DIRECTORY;
@@ -145,7 +126,7 @@ public final class BindingCodecContext extends AbstractBindingNormalizedNodeSeri
         new CacheLoader<Class<?>, DataObjectSerializer>() {
             @Override
             public DataObjectSerializer load(final Class<?> key) throws ExecutionException {
-                return new DataObjectSerializerProxy(streamers.get(key));
+                return new DataObjectSerializer(BindingCodecContext.this, streamers.get(key));
             }
         });
 
index 7d8036d5d38213b087f06f89fdf8fe2ff7e6dc30..ba760868630b843a852c1cd54ee1f53756dd7565 100644 (file)
@@ -7,22 +7,32 @@
  */
 package org.opendaylight.mdsal.binding.dom.codec.impl;
 
+import static java.util.Objects.requireNonNull;
+
 import java.io.IOException;
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.dom.codec.api.BindingStreamEventWriter;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 
 /**
  * A serializer which writes DataObject to supplied stream event writer.
  */
-// FIXME: this interface should not be necessary
-public interface DataObjectSerializer {
+final class DataObjectSerializer {
+    private final @NonNull DataObjectSerializerRegistry registry;
+    private final @NonNull DataObjectStreamer<?> delegate;
+
+    DataObjectSerializer(final DataObjectSerializerRegistry registry, final DataObjectStreamer<?> delegate) {
+        this.registry = requireNonNull(registry);
+        this.delegate = requireNonNull(delegate);
+    }
+
     /**
      * Writes stream events representing object to supplied stream.
      *
-     * @param obj
-     *            Source of stream events
-     * @param stream
-     *            Stream to which events should be written.
+     * @param obj Source of stream events
+     * @param stream Stream to which events should be written.
      */
-    void serialize(DataObject obj, BindingStreamEventWriter stream) throws IOException;
+    void serialize(final DataObject obj, final BindingStreamEventWriter stream) throws IOException {
+        delegate.serialize(registry, obj, stream);
+    }
 }