Move BindingReflections.findAugmentationTarget() 87/106587/3
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 21 Jun 2023 12:07:53 +0000 (14:07 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 21 Jun 2023 12:41:29 +0000 (14:41 +0200)
This method is only used in mdsal-binding-dom-codec, move it there.

JIRA: MDSAL-781
Change-Id: I0ee82715a0d69ddcf2f7daaca1ec7e7a2b2012bd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataContainerCodecContext.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataObjectCodecContext.java
binding/mdsal-binding-spec-util/pom.xml
binding/mdsal-binding-spec-util/src/main/java/org/opendaylight/mdsal/binding/spec/reflect/BindingReflections.java
binding/mdsal-binding-spec-util/src/test/java/org/opendaylight/mdsal/binding/spec/reflect/BindingReflectionsTest.java

index 2c37161b9a6aaba157418b57ea39206214978517..11051c7db767252be740b9ceec8638dc69fa946e 100644 (file)
@@ -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<D extends DataObject, T extends
             return false;
         }
         if (Augmentation.class.isAssignableFrom(potential)
-                && !BindingReflections.findAugmentationTarget(potential).equals(
-                        BindingReflections.findAugmentationTarget(target))) {
+            && !findAugmentationTarget(potential).equals(findAugmentationTarget(target))) {
             return false;
         }
         for (Method potentialMethod : potential.getMethods()) {
@@ -402,4 +401,18 @@ abstract sealed class DataContainerCodecContext<D extends DataObject, T extends
         }
         return true;
     }
+
+    /**
+     * 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.
+     */
+    static final Class<? extends Augmentable<?>> findAugmentationTarget(
+            final Class<? extends Augmentation<?>> augmentation) {
+        final Optional<Class<Augmentable<?>>> opt = ClassLoaderUtils.findFirstGenericArgument(augmentation,
+            Augmentation.class);
+        return opt.orElse(null);
+    }
 }
index 4342ca6691678018014f91ac367f9034ee9dc98c..a430a25251a8cd66fd95680ec60d51b390576f2d 100644 (file)
@@ -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<D extends DataObject, T exte
             final ImmutableMap<Class<?>, 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)) {
index 7a172f92feb379df88c4f11f7be16423f21cc618..19483415ad5914ef1e1bfe5829d40e9734bfaf90 100644 (file)
             <groupId>org.eclipse.jdt</groupId>
             <artifactId>org.eclipse.jdt.annotation</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>util</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
             <artifactId>yang-common</artifactId>
index 91ea6cdc4843c62a61c18d854e30076025849358..1fa8ffa023e3f4de9d802283763fce30097eec03 100644 (file)
@@ -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<? extends Augmentable<?>> findAugmentationTarget(
-            final Class<? extends Augmentation<?>> augmentation) {
-        final Optional<Class<Augmentable<?>>> opt = ClassLoaderUtils.findFirstGenericArgument(augmentation,
-            Augmentation.class);
-        return opt.orElse(null);
-    }
-
     /**
      * Returns a QName associated to supplied type.
      *
index 6d4e55635daa938b09d6bdde2d0ffd8dbf260f6a..c225c170765915eebabc4c1f8659529136ea9e0d 100644 (file)
@@ -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));
     }