From a96e49271c56b223f9e426b34adffe46c172c7ea Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 21 Jun 2023 14:07:53 +0200 Subject: [PATCH] Move BindingReflections.findAugmentationTarget() This method is only used in mdsal-binding-dom-codec, move it there. JIRA: MDSAL-781 Change-Id: I0ee82715a0d69ddcf2f7daaca1ec7e7a2b2012bd Signed-off-by: Robert Varga --- .../codec/impl/DataContainerCodecContext.java | 19 ++++++++++++++++--- .../codec/impl/DataObjectCodecContext.java | 3 +-- binding/mdsal-binding-spec-util/pom.xml | 4 ---- .../spec/reflect/BindingReflections.java | 18 ------------------ .../spec/reflect/BindingReflectionsTest.java | 1 - 5 files changed, 17 insertions(+), 28 deletions(-) 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 2c37161b9a..11051c7db7 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 @@ -38,8 +38,8 @@ import org.opendaylight.mdsal.binding.model.api.Type; import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeContext; import org.opendaylight.mdsal.binding.runtime.api.CompositeRuntimeType; import org.opendaylight.mdsal.binding.runtime.api.RuntimeTypeContainer; -import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections; import org.opendaylight.yangtools.util.ClassLoaderUtils; +import org.opendaylight.yangtools.yang.binding.Augmentable; import org.opendaylight.yangtools.yang.binding.Augmentation; import org.opendaylight.yangtools.yang.binding.BindingObject; import org.opendaylight.yangtools.yang.binding.DataContainer; @@ -378,8 +378,7 @@ abstract sealed class DataContainerCodecContext> findAugmentationTarget( + final Class> augmentation) { + final Optional>> opt = ClassLoaderUtils.findFirstGenericArgument(augmentation, + Augmentation.class); + return opt.orElse(null); + } } diff --git a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataObjectCodecContext.java b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataObjectCodecContext.java index 4342ca6691..a430a25251 100644 --- a/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataObjectCodecContext.java +++ b/binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataObjectCodecContext.java @@ -27,7 +27,6 @@ import org.opendaylight.mdsal.binding.model.api.Type; import org.opendaylight.mdsal.binding.runtime.api.AugmentRuntimeType; import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeContext; import org.opendaylight.mdsal.binding.runtime.api.CompositeRuntimeType; -import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections; import org.opendaylight.yangtools.yang.binding.Augmentation; import org.opendaylight.yangtools.yang.binding.BindingObject; import org.opendaylight.yangtools.yang.binding.DataObject; @@ -155,7 +154,7 @@ public abstract sealed class DataObjectCodecContext, AugmentationCodecPrototype> oldMismatched, final @NonNull Class childClass) { @SuppressWarnings("rawtypes") - final Class augTarget = BindingReflections.findAugmentationTarget((Class) childClass); + final Class augTarget = findAugmentationTarget((Class) childClass); // Do not bother with proposals which are not augmentations of our class, or do not match what the runtime // context would load. if (getBindingClass().equals(augTarget) && belongsToRuntimeContext(childClass)) { diff --git a/binding/mdsal-binding-spec-util/pom.xml b/binding/mdsal-binding-spec-util/pom.xml index 7a172f92fe..19483415ad 100644 --- a/binding/mdsal-binding-spec-util/pom.xml +++ b/binding/mdsal-binding-spec-util/pom.xml @@ -33,10 +33,6 @@ org.eclipse.jdt org.eclipse.jdt.annotation - - org.opendaylight.yangtools - util - org.opendaylight.yangtools yang-common diff --git a/binding/mdsal-binding-spec-util/src/main/java/org/opendaylight/mdsal/binding/spec/reflect/BindingReflections.java b/binding/mdsal-binding-spec-util/src/main/java/org/opendaylight/mdsal/binding/spec/reflect/BindingReflections.java index 91ea6cdc48..1fa8ffa023 100644 --- a/binding/mdsal-binding-spec-util/src/main/java/org/opendaylight/mdsal/binding/spec/reflect/BindingReflections.java +++ b/binding/mdsal-binding-spec-util/src/main/java/org/opendaylight/mdsal/binding/spec/reflect/BindingReflections.java @@ -25,9 +25,7 @@ import java.util.Optional; import java.util.ServiceLoader; import java.util.concurrent.TimeUnit; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.util.ClassLoaderUtils; import org.opendaylight.yangtools.yang.binding.Action; -import org.opendaylight.yangtools.yang.binding.Augmentable; import org.opendaylight.yangtools.yang.binding.Augmentation; import org.opendaylight.yangtools.yang.binding.BaseIdentity; import org.opendaylight.yangtools.yang.binding.BindingContract; @@ -65,22 +63,6 @@ public final class BindingReflections { // Hidden on purpose } - /** - * Find augmentation target class from concrete Augmentation class. This method uses first generic argument of - * implemented {@link Augmentation} interface. - * - * @param augmentation - * {@link Augmentation} subclass for which we want to determine - * augmentation target. - * @return Augmentation target - class which augmentation provides additional extensions. - */ - public static Class> findAugmentationTarget( - final Class> augmentation) { - final Optional>> opt = ClassLoaderUtils.findFirstGenericArgument(augmentation, - Augmentation.class); - return opt.orElse(null); - } - /** * Returns a QName associated to supplied type. * diff --git a/binding/mdsal-binding-spec-util/src/test/java/org/opendaylight/mdsal/binding/spec/reflect/BindingReflectionsTest.java b/binding/mdsal-binding-spec-util/src/test/java/org/opendaylight/mdsal/binding/spec/reflect/BindingReflectionsTest.java index 6d4e55635d..c225c17076 100644 --- a/binding/mdsal-binding-spec-util/src/test/java/org/opendaylight/mdsal/binding/spec/reflect/BindingReflectionsTest.java +++ b/binding/mdsal-binding-spec-util/src/test/java/org/opendaylight/mdsal/binding/spec/reflect/BindingReflectionsTest.java @@ -31,7 +31,6 @@ public class BindingReflectionsTest { assertFalse("Should not be Notification", BindingReflections.isNotification(DataObject.class)); assertTrue(BindingReflections.isRpcMethod(TestImplementation.class.getDeclaredMethod("rpcMethodTest"))); - assertEquals(TestImplementation.class, BindingReflections.findAugmentationTarget(TestImplementation.class)); assertEquals(QName.create("test", "test"), BindingReflections.getQName(TestIdentity.VALUE)); } -- 2.36.6