From: Robert Varga Date: Tue, 12 Apr 2022 09:32:00 +0000 (+0200) Subject: Switch SchemaUnawareCodec to an abstract class X-Git-Tag: v9.0.2~3 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=mdsal.git;a=commitdiff_plain;h=bd31ccda34e11b95519d27539651788665cfe718 Switch SchemaUnawareCodec to an abstract class 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 --- diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BitsCodec.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BitsCodec.java index a9adc30bdb..5da1c038fe 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BitsCodec.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/BitsCodec.java @@ -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. * 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 118ebe12d6..6f8bcce74a 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 ValueTypeCodec implements SchemaUnawareCodec { +final class EncapsulatedValueCodec extends SchemaUnawareCodec { private static final MethodType OBJ_METHOD = MethodType.methodType(Object.class, Object.class); /* diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodec.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodec.java index 3b29d23db9..2cd03826a8 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodec.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/EnumerationCodec.java @@ -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. diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/SchemaUnawareCodec.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/SchemaUnawareCodec.java index 892f80cecb..18e68456b2 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/SchemaUnawareCodec.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/SchemaUnawareCodec.java @@ -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 { +abstract class SchemaUnawareCodec implements IllegalArgumentCodec { /** * 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;