From e6ae7a92534576f8a253961d0a4bc9ea59f5ef5d Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 10 Jul 2023 13:27:33 +0200 Subject: [PATCH] Unify streamChild() implementations The two implementations we have perform essentially the same thing, tie them together. JIRA: MDSAL-805 Change-Id: I303ae152987b4d478862874b4d9ee3fc8db4f7db Signed-off-by: Robert Varga --- .../dom/codec/impl/AbstractDataObjectCodecContext.java | 8 +------- .../mdsal/binding/dom/codec/impl/ChoiceCodecContext.java | 6 ++---- .../binding/dom/codec/impl/DataContainerCodecContext.java | 8 +++++++- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/AbstractDataObjectCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/AbstractDataObjectCodecContext.java index 3d8bd63480..2e7ba4732f 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/AbstractDataObjectCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/AbstractDataObjectCodecContext.java @@ -68,14 +68,8 @@ public abstract sealed class AbstractDataObjectCodecContext CommonDataObjectCodecContext streamChild(final Class childClass) { - final var childProto = streamChildPrototype(childClass); - return childProto == null ? null : (CommonDataObjectCodecContext) childProto.get(); - } - - @Nullable CommonDataObjectCodecPrototype streamChildPrototype(final @NonNull Class childClass) { + CommonDataObjectCodecPrototype streamChildPrototype(final Class childClass) { return byStreamClass.get(childClass); } diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ChoiceCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ChoiceCodecContext.java index e4d15d497e..b5b7866307 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ChoiceCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/ChoiceCodecContext.java @@ -208,11 +208,9 @@ final class ChoiceCodecContext extends CommonDataObjectCod return (WithStatus) type().statement(); } - @SuppressWarnings("unchecked") @Override - public CommonDataObjectCodecContext streamChild(final Class childClass) { - final var child = byClass.get(childClass); - return child == null ? null : (CommonDataObjectCodecContext) child.get(); + CommonDataObjectCodecPrototype streamChildPrototype(final Class childClass) { + return byClass.get(childClass); } Iterable> getCaseChildrenClasses() { diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecContext.java index 15363426a8..838e55b4eb 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecContext.java @@ -130,8 +130,14 @@ abstract sealed class DataContainerCodecContext CommonDataObjectCodecContext streamChild(Class childClass); + public final CommonDataObjectCodecContext streamChild(final Class childClass) { + final var childProto = streamChildPrototype(requireNonNull(childClass)); + return childProto == null ? null : (CommonDataObjectCodecContext) childProto.get(); + } + + abstract @Nullable CommonDataObjectCodecPrototype streamChildPrototype(@NonNull Class childClass); @Override public String toString() { -- 2.36.6