From bd31ccda34e11b95519d27539651788665cfe718 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 12 Apr 2022 11:32:00 +0200 Subject: [PATCH] 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 --- .../opendaylight/mdsal/binding/dom/codec/impl/BitsCodec.java | 2 +- .../mdsal/binding/dom/codec/impl/EncapsulatedValueCodec.java | 2 +- .../mdsal/binding/dom/codec/impl/EnumerationCodec.java | 2 +- .../mdsal/binding/dom/codec/impl/SchemaUnawareCodec.java | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) 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; -- 2.36.6