From: Robert Varga Date: Mon, 11 Apr 2022 14:23:18 +0000 (+0200) Subject: Disconnect EncapsulatedValueCodec from ReflectionBasedCodec X-Git-Tag: v9.0.2~8 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=mdsal.git;a=commitdiff_plain;h=92b63c7819f73e531971c7d4b922e203611fd2a8 Disconnect EncapsulatedValueCodec from ReflectionBasedCodec While are not looking at the class after we have created our MethodHandles, hence retaining the Class reference and the baggage from ReflectionBasedCodec is completely unnecessary. This also simplifies the class hierarchy a bit. JIRA: MDSAL-704 Change-Id: Ifc0a9d98d892ab6fa72fd8c91ee3d4a61b1740a1 Signed-off-by: Robert Varga --- diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EncapsulatedValueCodec.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EncapsulatedValueCodec.java index 2613416a52..118ebe12d6 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EncapsulatedValueCodec.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EncapsulatedValueCodec.java @@ -26,7 +26,7 @@ import org.opendaylight.mdsal.binding.spec.naming.BindingMapping; * Derived YANG types are just immutable value holders for simple value * types, which are same as in NormalizedNode model. */ -final class EncapsulatedValueCodec extends ReflectionBasedCodec implements SchemaUnawareCodec { +final class EncapsulatedValueCodec extends ValueTypeCodec implements SchemaUnawareCodec { private static final MethodType OBJ_METHOD = MethodType.methodType(Object.class, Object.class); /* @@ -49,7 +49,7 @@ final class EncapsulatedValueCodec extends ReflectionBasedCodec implements Schem final Class valueType = m.getReturnType(); final MethodHandle constructor = lookup.findConstructor(key, MethodType.methodType(void.class, valueType)).asType(OBJ_METHOD); - return new EncapsulatedValueCodec(key, constructor, getter, valueType); + return new EncapsulatedValueCodec(constructor, getter, valueType); } }); @@ -57,9 +57,8 @@ final class EncapsulatedValueCodec extends ReflectionBasedCodec implements Schem private final MethodHandle getter; private final Class valueType; - private EncapsulatedValueCodec(final Class typeClz, final MethodHandle constructor, final MethodHandle getter, + private EncapsulatedValueCodec(final MethodHandle constructor, final MethodHandle getter, final Class valueType) { - super(typeClz); this.constructor = requireNonNull(constructor); this.getter = requireNonNull(getter); this.valueType = requireNonNull(valueType);