Switch SchemaUnawareCodec to an abstract class 40/100540/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 12 Apr 2022 09:32:00 +0000 (11:32 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 12 Apr 2022 09:33:54 +0000 (11:33 +0200)
We have four implementations here, three of which are indirected via
ValueTypeCodec. Switch the type hierarchy a bit, which leaves only
two codecs still using ValueTypeCodec.

JIRA: MDSAL-704
Change-Id: I4c92f15f7de2678a51792e60431947e4c6acbd6f
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
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EncapsulatedValueCodec.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodec.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/SchemaUnawareCodec.java

index a9adc30bdb2abbe8b2c7ddf6e85b524e12f54edb..5da1c038fe7e4515ccc7a86aa27cec71c9d44b78 100644 (file)
@@ -34,7 +34,7 @@ import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit;
 
 // FIXME: 'SchemaUnawareCodec' is not correct: we use BitsTypeDefinition in construction
-final class BitsCodec extends ValueTypeCodec implements SchemaUnawareCodec {
+final class BitsCodec extends SchemaUnawareCodec {
     /*
      * Use identity comparison for keys and allow classes to be GCd themselves.
      *
index 118ebe12d6de1e054cdb86e798402222bd724e4c..6f8bcce74a6dc3b7049708a00cd37f671cee54ea 100644 (file)
@@ -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 ValueTypeCodec implements SchemaUnawareCodec {
+final class EncapsulatedValueCodec extends SchemaUnawareCodec {
     private static final MethodType OBJ_METHOD = MethodType.methodType(Object.class, Object.class);
 
     /*
index 3b29d23db9210441e8e70dc93039e23a64c7711f..2cd03826a8d7b62de3b3bd8d8551809c75b34915 100644 (file)
@@ -26,7 +26,7 @@ import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPai
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-final class EnumerationCodec extends ValueTypeCodec implements SchemaUnawareCodec {
+final class EnumerationCodec extends SchemaUnawareCodec {
     private static final Logger LOG = LoggerFactory.getLogger(EnumerationCodec.class);
     /*
      * Use identity comparison for keys and allow classes to be GCd themselves.
index 892f80cecb1fbadd01303d9ad23b7a0598ac622a..18e68456b264c68d0570de6fe271d5154000e3a1 100644 (file)
@@ -22,12 +22,12 @@ import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;
  * modules) they may have one static instance generated when first time needed.
  */
 // FIXME: IllegalArgumentCodec is perhaps not appropriate here due to null behavior
-interface SchemaUnawareCodec extends IllegalArgumentCodec<Object, Object> {
+abstract class SchemaUnawareCodec implements IllegalArgumentCodec<Object, Object> {
     /**
      * No-op Codec, Java YANG Binding uses same types as NormalizedNode model for base YANG types, representing numbers,
      * binary, strings and empty.
      */
-    @NonNull SchemaUnawareCodec NOOP_CODEC = new SchemaUnawareCodec() {
+    static final @NonNull SchemaUnawareCodec NOOP_CODEC = new SchemaUnawareCodec() {
         @Override
         public Object serialize(final Object input) {
             return input;