Disconnect BitsCodec from ReflectionBasedCodec 37/100537/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 11 Apr 2022 14:51:01 +0000 (16:51 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 11 Apr 2022 14:51:51 +0000 (16:51 +0200)
There is just no need to retain the target class here, as we'll never
access it.

JIRA: MDSAL-704
Change-Id: I1d01af3a16d2a4de5d8bd899428960875280493a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BitsCodec.java

index 9a4238e9dcb9d891cac7002c9bb319395edc070b..a9adc30bdb2abbe8b2c7ddf6e85b524e12f54edb 100644 (file)
@@ -33,7 +33,8 @@ import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
 import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit;
 
-final class BitsCodec extends ReflectionBasedCodec implements SchemaUnawareCodec {
+// FIXME: 'SchemaUnawareCodec' is not correct: we use BitsTypeDefinition in construction
+final class BitsCodec extends ValueTypeCodec implements SchemaUnawareCodec {
     /*
      * Use identity comparison for keys and allow classes to be GCd themselves.
      *
@@ -54,9 +55,7 @@ final class BitsCodec extends ReflectionBasedCodec implements SchemaUnawareCodec
     private final ImmutableSet<String> ctorArgs;
     private final MethodHandle ctor;
 
-    private BitsCodec(final Class<?> typeClass, final MethodHandle ctor, final Set<String> ctorArgs,
-            final Map<String, Method> getters) {
-        super(typeClass);
+    private BitsCodec(final MethodHandle ctor, final Set<String> ctorArgs, final Map<String, Method> getters) {
         this.ctor = requireNonNull(ctor);
         this.ctorArgs = ImmutableSet.copyOf(ctorArgs);
         this.getters = ImmutableMap.copyOf(getters);
@@ -83,7 +82,7 @@ final class BitsCodec extends ReflectionBasedCodec implements SchemaUnawareCodec
 
             final MethodHandle ctor = MethodHandles.publicLookup().unreflectConstructor(constructor)
                     .asSpreader(Boolean[].class, ctorArgs.size()).asType(CONSTRUCTOR_INVOKE_TYPE);
-            return new BitsCodec(returnType, ctor, ctorArgs, getters);
+            return new BitsCodec(ctor, ctorArgs, getters);
         });
     }