From dfdd4cf17a5bcc62da9b1ee81f1054f10240ff71 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 26 Aug 2019 10:43:25 +0200 Subject: [PATCH] Make IdentifiableItemCodec an IllegalArgumentCodec The interface contract matches the expectations, hence we can cleanly apply the pattern. JIRA: YANGTOOLS-1017 Change-Id: I7b0efcfa0981646071c3715daa691559f923c285 Signed-off-by: Robert Varga --- .../binding/dom/codec/impl/IdentifiableItemCodec.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/IdentifiableItemCodec.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/IdentifiableItemCodec.java index 6f44a8ca1f..9af7ffb12b 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/IdentifiableItemCodec.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/IdentifiableItemCodec.java @@ -22,7 +22,7 @@ import java.util.Map; import java.util.Map.Entry; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.spec.naming.BindingMapping; -import org.opendaylight.yangtools.concepts.Codec; +import org.opendaylight.yangtools.concepts.AbstractIllegalArgumentCodec; import org.opendaylight.yangtools.util.ImmutableOffsetMap; import org.opendaylight.yangtools.util.ImmutableOffsetMapTemplate; import org.opendaylight.yangtools.util.SharedSingletonMapTemplate; @@ -36,7 +36,8 @@ import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; /** * Codec support for extracting the {@link Identifiable#key()} method return from a MapEntryNode. */ -abstract class IdentifiableItemCodec implements Codec> { +abstract class IdentifiableItemCodec + extends AbstractIllegalArgumentCodec> { private static final class SingleKey extends IdentifiableItemCodec { private static final MethodType CTOR_TYPE = MethodType.methodType(Identifier.class, Object.class); @@ -147,14 +148,14 @@ abstract class IdentifiableItemCodec implements Codec deserialize(final NodeIdentifierWithPredicates input) { + @SuppressWarnings({ "rawtypes", "unchecked" }) + protected final IdentifiableItem deserializeImpl(final NodeIdentifierWithPredicates input) { final Identifier identifier = deserializeIdentifier(input); return IdentifiableItem.of((Class) identifiable, (Identifier) identifier); } @Override - public final NodeIdentifierWithPredicates serialize(final IdentifiableItem input) { + protected final NodeIdentifierWithPredicates serializeImpl(final IdentifiableItem input) { return serializeIdentifier(qname, input.getKey()); } -- 2.36.6