Do not use BindingReflections in AbstractRIBSupport 28/106628/2
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 22 Jun 2023 13:28:34 +0000 (15:28 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 22 Jun 2023 15:05:19 +0000 (17:05 +0200)
The details of this class are specialized in a hand-coded manner,
require user to inject QNames statically.

JIRA: BGPCEP-1016
Change-Id: I780dfcf7780bd2b00ec00b97da8ccd4be968f422
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
27 files changed:
bgp/extensions/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/EvpnRibSupport.java
bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/AbstractFlowspecIpRIBSupport.java
bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/AbstractFlowspecRIBSupport.java
bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/FlowspecIpv4RIBSupport.java
bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/FlowspecIpv6RIBSupport.java
bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/l3vpn/AbstractFlowspecL3vpnRIBSupport.java
bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/l3vpn/ipv4/FlowspecL3vpnIpv4RIBSupport.java
bgp/extensions/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/l3vpn/ipv6/FlowspecL3vpnIpv6RIBSupport.java
bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/AbstractIPRibSupport.java
bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/IPv4RIBSupport.java
bgp/extensions/inet/src/main/java/org/opendaylight/protocol/bgp/inet/IPv6RIBSupport.java
bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/mcast/AbstractL3vpnMcastIpRIBSupport.java
bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/mcast/L3VpnMcastIpv4RIBSupport.java
bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/mcast/L3VpnMcastIpv6RIBSupport.java
bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/unicast/AbstractVpnRIBSupport.java
bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/unicast/ipv4/VpnIpv4RIBSupport.java
bgp/extensions/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/unicast/ipv6/VpnIpv6RIBSupport.java
bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/AbstractLabeledUnicastRIBSupport.java
bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/LabeledUnicastIpv4RIBSupport.java
bgp/extensions/labeled-unicast/src/main/java/org/opendaylight/protocol/bgp/labeled/unicast/LabeledUnicastIpv6RIBSupport.java
bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/LinkstateRIBSupport.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/AbstractMvpnRIBSupport.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv4RIBSupport.java
bgp/extensions/mvpn/src/main/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv6RIBSupport.java
bgp/extensions/route-target/src/main/java/org/opendaylight/protocol/bgp/route/targetcontrain/impl/RouteTargetConstrainRIBSupport.java
bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/AbstractRIBSupport.java
bgp/rib-spi/src/test/java/org/opendaylight/protocol/bgp/rib/spi/RIBSupportTestImp.java

index e420fd7baba3c30db5e066aa02ec799d550aff24..0482be037ce650578a94843456a92c82d9877250 100644 (file)
@@ -43,17 +43,16 @@ import org.slf4j.LoggerFactory;
 
 final class EvpnRibSupport extends AbstractRIBSupport<EvpnRoutesCase, EvpnRoutes, EvpnRoute> {
     private static final Logger LOG = LoggerFactory.getLogger(EvpnRibSupport.class);
-
     private static final NodeIdentifier NLRI_ROUTES_LIST = NodeIdentifier.create(EvpnDestination.QNAME);
 
     EvpnRibSupport(final BindingNormalizedNodeSerializer mappingService) {
         super(mappingService,
-                EvpnRoutesCase.class,
-                EvpnRoutes.class,
-                EvpnRoute.class,
-                L2vpnAddressFamily.VALUE,
-                EvpnSubsequentAddressFamily.VALUE,
-                DestinationEvpn.QNAME);
+            EvpnRoutesCase.class, EvpnRoutesCase.QNAME,
+            EvpnRoutes.class, EvpnRoutes.QNAME,
+            EvpnRoute.class, EvpnRoute.QNAME,
+            L2vpnAddressFamily.VALUE, L2vpnAddressFamily.QNAME,
+            EvpnSubsequentAddressFamily.VALUE, EvpnSubsequentAddressFamily.QNAME,
+            DestinationEvpn.QNAME);
     }
 
     @Override
index 08da53aac1d45482141af623f130a98ccb473299..b0a8567f11396dcfff72ec8c58911efd1aade741 100644 (file)
@@ -26,10 +26,11 @@ abstract class AbstractFlowspecIpRIBSupport<
         S extends ChildOf<? super C>,
         R extends Route & ChildOf<? super S> & Identifiable<?>> extends AbstractFlowspecRIBSupport<T, C, S, R> {
     AbstractFlowspecIpRIBSupport(final BindingNormalizedNodeSerializer mappingService, final Class<C> cazeClass,
-            final Class<S> containerClass, final Class<R> listClass, final AddressFamily afiClass,
-            final SubsequentAddressFamily safiClass, final QName dstContainerClassQName, final T nlriParser) {
-        super(mappingService, cazeClass, containerClass, listClass, afiClass, safiClass, dstContainerClassQName,
-            nlriParser);
+            final QName cazeQName, final Class<S> containerClass, final QName containerQName, final Class<R> listClass,
+            final QName listQName, final AddressFamily afi, final QName afiQName, final SubsequentAddressFamily safi,
+            final QName safiQName, final QName dstContainerClassQName, final T nlriParser) {
+        super(mappingService, cazeClass, cazeQName, containerClass, containerQName, listClass, listQName, afi, afiQName,
+            safi, safiQName, dstContainerClassQName, nlriParser);
     }
 
     @Override
index 44241171199f500f247a29ab955fed01b0ca4fe8..b49a05bab2396472d850e1ba6f8464b94492f791 100644 (file)
@@ -44,15 +44,15 @@ public abstract class AbstractFlowspecRIBSupport<
 
     protected AbstractFlowspecRIBSupport(
             final BindingNormalizedNodeSerializer mappingService,
-            final Class<C> cazeClass,
-            final Class<S> containerClass,
-            final Class<R> listClass,
-            final AddressFamily afiClass,
-            final SubsequentAddressFamily safiClass,
+            final Class<C> cazeClass, final QName cazeQName,
+            final Class<S> containerClass, final QName containerQName,
+            final Class<R> listClass, final QName listQName,
+            final AddressFamily afi, final QName afiQName,
+            final SubsequentAddressFamily safi, final QName safiQName,
             final QName dstContainerClassQName,
-            final T nlriParser
-    ) {
-        super(mappingService, cazeClass, containerClass, listClass, afiClass, safiClass, dstContainerClassQName);
+            final T nlriParser) {
+        super(mappingService, cazeClass, cazeQName, containerClass, containerQName, listClass, listQName, afi, afiQName,
+            safi, safiQName, dstContainerClassQName);
         this.nlriParser = requireNonNull(nlriParser);
     }
 
index cb30b228ae78c91c5611baeb43631a09db3be757..3c4fff654d99ec81f5c629d9f1c6c5ad9b8b4301 100644 (file)
@@ -22,15 +22,13 @@ public final class FlowspecIpv4RIBSupport
         FlowspecRoutes,
         FlowspecRoute> {
     public FlowspecIpv4RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
-        super(
-                mappingService,
-                FlowspecRoutesCase.class,
-                FlowspecRoutes.class,
-                FlowspecRoute.class,
-                Ipv4AddressFamily.VALUE,
-                FlowspecSubsequentAddressFamily.VALUE,
-                DestinationFlowspecIpv4.QNAME,
-                new SimpleFlowspecIpv4NlriParser(SAFI.FLOWSPEC)
-        );
+        super(mappingService,
+            FlowspecRoutesCase.class, FlowspecRoutesCase.QNAME,
+            FlowspecRoutes.class, FlowspecRoutes.QNAME,
+            FlowspecRoute.class, FlowspecRoute.QNAME,
+            Ipv4AddressFamily.VALUE, Ipv4AddressFamily.QNAME,
+            FlowspecSubsequentAddressFamily.VALUE, FlowspecSubsequentAddressFamily.QNAME,
+            DestinationFlowspecIpv4.QNAME,
+            new SimpleFlowspecIpv4NlriParser(SAFI.FLOWSPEC));
     }
 }
index 06adc6a9bd3e4681588e99cf9c74e872465658bf..90f31f06506cb5757fb5baed174d856f13aaa46c 100644 (file)
@@ -22,15 +22,13 @@ public final class FlowspecIpv6RIBSupport
         FlowspecIpv6Routes,
         FlowspecRoute> {
     public FlowspecIpv6RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
-        super(
-                mappingService,
-                FlowspecIpv6RoutesCase.class,
-                FlowspecIpv6Routes.class,
-                FlowspecRoute.class,
-                Ipv6AddressFamily.VALUE,
-                FlowspecSubsequentAddressFamily.VALUE,
-                DestinationFlowspecIpv6.QNAME,
-                new SimpleFlowspecIpv6NlriParser(SAFI.FLOWSPEC)
-        );
+        super(mappingService,
+            FlowspecIpv6RoutesCase.class, FlowspecIpv6RoutesCase.QNAME,
+            FlowspecIpv6Routes.class, FlowspecIpv6Routes.QNAME,
+            FlowspecRoute.class, FlowspecRoute.QNAME,
+            Ipv6AddressFamily.VALUE, Ipv6AddressFamily.QNAME,
+            FlowspecSubsequentAddressFamily.VALUE, FlowspecSubsequentAddressFamily.QNAME,
+            DestinationFlowspecIpv6.QNAME,
+            new SimpleFlowspecIpv6NlriParser(SAFI.FLOWSPEC));
     }
 }
index abf552d334232d63e7f069b073718e9f8de4b373..d6ff19ec30a855531a1eb46e44140bbd5578fb4f 100644 (file)
@@ -28,15 +28,15 @@ public abstract class AbstractFlowspecL3vpnRIBSupport<
         R extends Route & ChildOf<? super S> & Identifiable<?>> extends AbstractFlowspecRIBSupport<T, C, S, R> {
     protected AbstractFlowspecL3vpnRIBSupport(
             final BindingNormalizedNodeSerializer mappingService,
-            final Class<C> cazeClass,
-            final Class<S> containerClass,
-            final Class<R> listClass,
+            final Class<C> cazeClass, final QName cazeQName,
+            final Class<S> containerClass, final QName containerQName,
+            final Class<R> listClass, final QName listQName,
             final QName dstContainerClassQName,
-            final AddressFamily afiClass,
-            final T flowspecNlriParser
-    ) {
-        super(mappingService, cazeClass, containerClass, listClass, afiClass,
-            FlowspecL3vpnSubsequentAddressFamily.VALUE, dstContainerClassQName, flowspecNlriParser);
+            final AddressFamily afi, final QName afiQName,
+            final T flowspecNlriParser) {
+        super(mappingService, cazeClass, cazeQName, containerClass, containerQName, listClass, listQName, afi, afiQName,
+            FlowspecL3vpnSubsequentAddressFamily.VALUE, FlowspecL3vpnSubsequentAddressFamily.QNAME,
+            dstContainerClassQName, flowspecNlriParser);
     }
 
     @Override
index 1c6790e4cc70e38910cbb42c3ab23d700c9d0c00..7e2ffb4107ec1bd37c32d246fb4aea9456e6e6c2 100644 (file)
@@ -22,14 +22,12 @@ public final class FlowspecL3vpnIpv4RIBSupport
         FlowspecL3vpnIpv4Routes,
         FlowspecL3vpnRoute> {
     public FlowspecL3vpnIpv4RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
-        super(
-                mappingService,
-                FlowspecL3vpnIpv4RoutesCase.class,
-                FlowspecL3vpnIpv4Routes.class,
-                FlowspecL3vpnRoute.class,
-                DestinationFlowspecL3vpnIpv4.QNAME,
-                Ipv4AddressFamily.VALUE,
-                new FlowspecL3vpnIpv4NlriParser(SAFI.FLOWSPEC_VPN)
-        );
+        super(mappingService,
+            FlowspecL3vpnIpv4RoutesCase.class, FlowspecL3vpnIpv4RoutesCase.QNAME,
+            FlowspecL3vpnIpv4Routes.class, FlowspecL3vpnIpv4Routes.QNAME,
+            FlowspecL3vpnRoute.class, FlowspecL3vpnRoute.QNAME,
+            DestinationFlowspecL3vpnIpv4.QNAME,
+            Ipv4AddressFamily.VALUE, Ipv4AddressFamily.QNAME,
+            new FlowspecL3vpnIpv4NlriParser(SAFI.FLOWSPEC_VPN));
     }
 }
index eca484de056c52aff617f41e08f958910d06bc63..f6e248c5c68e74e6e4cc3ffe2d9d6364583559ef 100644 (file)
@@ -22,14 +22,12 @@ public final class FlowspecL3vpnIpv6RIBSupport
         FlowspecL3vpnIpv6Routes,
         FlowspecL3vpnRoute> {
     public FlowspecL3vpnIpv6RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
-        super(
-                mappingService,
-                FlowspecL3vpnIpv6RoutesCase.class,
-                FlowspecL3vpnIpv6Routes.class,
-                FlowspecL3vpnRoute.class,
-                DestinationFlowspecL3vpnIpv6.QNAME,
-                Ipv6AddressFamily.VALUE,
-                new FlowspecL3vpnIpv6NlriParser(SAFI.FLOWSPEC_VPN)
-        );
+        super(mappingService,
+            FlowspecL3vpnIpv6RoutesCase.class, FlowspecL3vpnIpv6RoutesCase.QNAME,
+            FlowspecL3vpnIpv6Routes.class, FlowspecL3vpnIpv6Routes.QNAME,
+            FlowspecL3vpnRoute.class, FlowspecL3vpnRoute.QNAME,
+            DestinationFlowspecL3vpnIpv6.QNAME,
+            Ipv6AddressFamily.VALUE, Ipv6AddressFamily.QNAME,
+            new FlowspecL3vpnIpv6NlriParser(SAFI.FLOWSPEC_VPN));
     }
 }
index 681f1f0f6f61a38923b8fb24188003a1172a4122..4723f52086f9463d615d5f09de1a337bfab44679 100644 (file)
@@ -55,25 +55,25 @@ abstract class AbstractIPRibSupport<
     AbstractIPRibSupport(
             final BindingNormalizedNodeSerializer mappingService,
             final Class<? extends DataObject> prefixClass,
-            final AddressFamily addressFamilyClass,
-            final Class<C> cazeClass,
-            final Class<S> containerClass,
-            final Class<R> listClass,
+            final AddressFamily afi, final QName afiQName,
+            final Class<C> cazeClass, final QName cazeQName,
+            final Class<S> containerClass, final QName containerQName,
+            final Class<R> listClass, final QName listQName,
             final QName destinationQname, final QName prefixesQname) {
-        super(mappingService, cazeClass, containerClass, listClass, addressFamilyClass,
-                UnicastSubsequentAddressFamily.VALUE, destinationQname);
-        this.nlriRoutesList = new NodeIdentifier(prefixesQname);
-        this.cacheableNlriObjects = ImmutableSet.of(prefixClass);
-        this.prefixNid = new NodeIdentifier(QName.create(routeQName(), "prefix").intern());
+        super(mappingService, cazeClass, cazeQName, containerClass, containerQName, listClass, listQName, afi, afiQName,
+                UnicastSubsequentAddressFamily.VALUE, UnicastSubsequentAddressFamily.QNAME, destinationQname);
+        nlriRoutesList = NodeIdentifier.create(prefixesQname);
+        cacheableNlriObjects = ImmutableSet.of(prefixClass);
+        prefixNid = NodeIdentifier.create(QName.create(routeQName(), "prefix").intern());
     }
 
     final NodeIdentifier routePrefixIdentifier() {
-        return this.prefixNid;
+        return prefixNid;
     }
 
     @Override
     public final ImmutableCollection<Class<? extends BindingObject>> cacheableNlriObjects() {
-        return this.cacheableNlriObjects;
+        return cacheableNlriObjects;
     }
 
     @Override
@@ -83,7 +83,7 @@ abstract class AbstractIPRibSupport<
                                                                           final ContainerNode attributes,
                                                                           final ApplyRoute function) {
         if (destination != null) {
-            final DataContainerChild routes = destination.childByArg(this.nlriRoutesList);
+            final DataContainerChild routes = destination.childByArg(nlriRoutesList);
             if (routes instanceof UnkeyedListNode) {
                 // Instance identifier to table/(choice routes)/(map of route)
                 final YangInstanceIdentifier base = routesYangInstanceIdentifier(routesPath);
index f6453d5923e567cce29883b564bb0869df8d8159..b18e1da28dc27ca076fab77fcf730ac0e4000c52 100644 (file)
@@ -32,14 +32,13 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
  */
 final class IPv4RIBSupport extends AbstractIPRibSupport<Ipv4RoutesCase, Ipv4Routes, Ipv4Route> {
     IPv4RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
-        super(
-                mappingService,
-                Ipv4PrefixAndPathId.class,
-                Ipv4AddressFamily.VALUE,
-                Ipv4RoutesCase.class,
-                Ipv4Routes.class,
-                Ipv4Route.class,
-                DestinationIpv4.QNAME, Ipv4Prefixes.QNAME);
+        super(mappingService,
+            Ipv4PrefixAndPathId.class,
+            Ipv4AddressFamily.VALUE, Ipv4AddressFamily.QNAME,
+            Ipv4RoutesCase.class, Ipv4RoutesCase.QNAME,
+            Ipv4Routes.class, Ipv4Routes.QNAME,
+            Ipv4Route.class, Ipv4Route.QNAME,
+            DestinationIpv4.QNAME, Ipv4Prefixes.QNAME);
     }
 
     private List<Ipv4Prefixes> extractPrefixes(final Collection<MapEntryNode> routes) {
index b1020451f6b90fba3748b36aa1bfdb195c8d43d5..801d63518d0774f049eb3b21eaec458d02f510c6 100644 (file)
@@ -32,12 +32,12 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
 final class IPv6RIBSupport extends AbstractIPRibSupport<Ipv6RoutesCase, Ipv6Routes, Ipv6Route> {
     IPv6RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
         super(mappingService,
-                org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.inet.rev180329.Ipv6Prefix.class,
-                Ipv6AddressFamily.VALUE,
-                Ipv6RoutesCase.class,
-                Ipv6Routes.class,
-                Ipv6Route.class,
-                DestinationIpv6.QNAME, Ipv6Prefixes.QNAME);
+            org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.inet.rev180329.Ipv6Prefix.class,
+            Ipv6AddressFamily.VALUE, Ipv6AddressFamily.QNAME,
+            Ipv6RoutesCase.class, Ipv6RoutesCase.QNAME,
+            Ipv6Routes.class, Ipv6Routes.QNAME,
+            Ipv6Route.class, Ipv6Route.QNAME,
+            DestinationIpv6.QNAME, Ipv6Prefixes.QNAME);
     }
 
     @Override
index 3f9a00e6d49a3da44ca699ad9a96b8dd003c434f..477ff9a39f2df1bbb964e5801e68a3480c230469 100644 (file)
@@ -74,20 +74,22 @@ abstract class AbstractL3vpnMcastIpRIBSupport<
     AbstractL3vpnMcastIpRIBSupport(
             final BindingNormalizedNodeSerializer mappingService,
             final Class<C> cazeClass, final QName cazeQName,
-            final Class<S> containerClass,
-            final AddressFamily afiClass,
+            final Class<S> containerClass, final QName containerQName,
+            final AddressFamily afi, final QName afiQName,
             final QName destContainerQname,
             final QName destListQname) {
-        super(mappingService, cazeClass, containerClass, L3vpnMcastRoute.class, afiClass,
-                McastMplsLabeledVpnSubsequentAddressFamily.VALUE, destContainerQname);
-        this.nlriRoutesList = NodeIdentifier.create(destListQname);
-        this.rdNid = NodeIdentifier.create(QName.create(cazeQName, "route-distinguisher").intern());
-        this.cacheableNlriObjects = ImmutableSet.of(cazeClass);
+        super(mappingService, cazeClass, cazeQName, containerClass, containerQName,
+            L3vpnMcastRoute.class, L3vpnMcastRoute.QNAME, afi, afiQName,
+            McastMplsLabeledVpnSubsequentAddressFamily.VALUE, McastMplsLabeledVpnSubsequentAddressFamily.QNAME,
+            destContainerQname);
+        nlriRoutesList = NodeIdentifier.create(destListQname);
+        rdNid = NodeIdentifier.create(QName.create(cazeQName, "route-distinguisher").intern());
+        cacheableNlriObjects = ImmutableSet.of(cazeClass);
     }
 
     @Override
     public final ImmutableCollection<Class<? extends BindingObject>> cacheableNlriObjects() {
-        return this.cacheableNlriObjects;
+        return cacheableNlriObjects;
     }
 
     protected abstract IpPrefix createPrefix(String prefix);
index 4deb3e04e465d3c9e2ce6d0efc1ab6b11d42fbe1..839c35e3d413f4390d718511d610578ca989ecc2 100644 (file)
@@ -40,11 +40,11 @@ public final class L3VpnMcastIpv4RIBSupport
         extends AbstractL3vpnMcastIpRIBSupport<L3vpnMcastRoutesIpv4Case, L3vpnMcastRoutesIpv4> {
     public L3VpnMcastIpv4RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
         super(mappingService,
-                L3vpnMcastRoutesIpv4Case.class, L3vpnMcastRoutesIpv4Case.QNAME,
-                L3vpnMcastRoutesIpv4.class,
-                Ipv4AddressFamily.VALUE,
-                DestinationIpv4L3vpnMcast.QNAME,
-                L3vpnMcastDestination.QNAME);
+            L3vpnMcastRoutesIpv4Case.class, L3vpnMcastRoutesIpv4Case.QNAME,
+            L3vpnMcastRoutesIpv4.class, L3vpnMcastRoutesIpv4.QNAME,
+            Ipv4AddressFamily.VALUE, Ipv4AddressFamily.QNAME,
+            DestinationIpv4L3vpnMcast.QNAME,
+            L3vpnMcastDestination.QNAME);
     }
 
     @Override
index c90cbfe8bfe1eae001d805464263d62f3083f538..6448f6a962a3a30c2f46bf45e5702d1ad86adc43 100644 (file)
@@ -40,11 +40,11 @@ public final class L3VpnMcastIpv6RIBSupport
         extends AbstractL3vpnMcastIpRIBSupport<L3vpnMcastRoutesIpv6Case, L3vpnMcastRoutesIpv6> {
     public L3VpnMcastIpv6RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
         super(mappingService,
-                L3vpnMcastRoutesIpv6Case.class, L3vpnMcastRoutesIpv6Case.QNAME,
-                L3vpnMcastRoutesIpv6.class,
-                Ipv6AddressFamily.VALUE,
-                DestinationIpv6L3vpnMcast.QNAME,
-                L3vpnMcastDestination.QNAME);
+            L3vpnMcastRoutesIpv6Case.class, L3vpnMcastRoutesIpv6Case.QNAME,
+            L3vpnMcastRoutesIpv6.class, L3vpnMcastRoutesIpv6.QNAME,
+            Ipv6AddressFamily.VALUE, Ipv6AddressFamily.QNAME,
+            DestinationIpv6L3vpnMcast.QNAME,
+            L3vpnMcastDestination.QNAME);
     }
 
     @Override
index 7c7d9e359bcd95529a7537eefacfefacee1256bd..e1cb2cf6c1f4e699864f831effa341d034a39780 100644 (file)
@@ -65,22 +65,23 @@ public abstract class AbstractVpnRIBSupport<C extends Routes & DataObject, S ext
      */
     protected AbstractVpnRIBSupport(
             final BindingNormalizedNodeSerializer mappingService,
-            final Class<C> cazeClass,
+            final Class<C> cazeClass, final QName cazeQName,
             final Class<S> containerClass, final QName containerQName,
-            final AddressFamily afiClass,
+            final AddressFamily afi, final QName afiQName,
             final QName vpnDstContainerClassQname) {
-        super(mappingService, cazeClass, containerClass, VpnRoute.class, afiClass,
-                MplsLabeledVpnSubsequentAddressFamily.VALUE, vpnDstContainerClassQname);
-        this.nlriRoutesListNid = NodeIdentifier.create(VpnDestination.QNAME.bindTo(containerQName.getModule())
-            .intern());
-        this.labelStackNid = NodeIdentifier.create(QName.create(containerQName, "label-stack").intern());
-        this.lvNid = NodeIdentifier.create(QName.create(containerQName, "label-value").intern());
+        super(mappingService, cazeClass, cazeQName, containerClass, containerQName, VpnRoute.class, VpnRoute.QNAME,
+            afi, afiQName,
+            MplsLabeledVpnSubsequentAddressFamily.VALUE, MplsLabeledVpnSubsequentAddressFamily.QNAME,
+            vpnDstContainerClassQname);
+        nlriRoutesListNid = NodeIdentifier.create(VpnDestination.QNAME.bindTo(containerQName.getModule()).intern());
+        labelStackNid = NodeIdentifier.create(QName.create(containerQName, "label-stack").intern());
+        lvNid = NodeIdentifier.create(QName.create(containerQName, "label-value").intern());
     }
 
     private VpnDestination extractVpnDestination(final DataContainerNode route) {
         return new VpnDestinationBuilder()
                 .setPrefix(createPrefix(extractPrefix(route)))
-                .setLabelStack(LabeledUnicastIpv4RIBSupport.extractLabel(route, this.labelStackNid, this.lvNid))
+                .setLabelStack(LabeledUnicastIpv4RIBSupport.extractLabel(route, labelStackNid, lvNid))
                 .setRouteDistinguisher(extractRouteDistinguisher(route))
                 .setPathId(PathIdUtil.buildPathId(route, routePathIdNid()))
                 .build();
@@ -113,7 +114,7 @@ public abstract class AbstractVpnRIBSupport<C extends Routes & DataObject, S ext
                                                                           final ContainerNode attributes,
                                                                           final ApplyRoute function) {
         if (destination != null) {
-            final DataContainerChild routes = destination.childByArg(this.nlriRoutesListNid);
+            final DataContainerChild routes = destination.childByArg(nlriRoutesListNid);
             if (routes != null) {
                 if (routes instanceof UnkeyedListNode routeListNode) {
                     LOG.debug("{} routes are found", routeListNode.size());
index f6145d43534ff55c1b719146ce2b6c8c4e30863d..ada3a404fb334911ed2662f5082152a6c429835b 100644 (file)
@@ -29,10 +29,10 @@ public final class VpnIpv4RIBSupport extends AbstractVpnRIBSupport<VpnIpv4Routes
      */
     public VpnIpv4RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
         super(mappingService,
-                VpnIpv4RoutesCase.class,
-                VpnIpv4Routes.class, VpnIpv4Routes.QNAME,
-                Ipv4AddressFamily.VALUE,
-                VpnIpv4Destination.QNAME);
+            VpnIpv4RoutesCase.class, VpnIpv4RoutesCase.QNAME,
+            VpnIpv4Routes.class, VpnIpv4Routes.QNAME,
+            Ipv4AddressFamily.VALUE, Ipv4AddressFamily.QNAME,
+            VpnIpv4Destination.QNAME);
     }
 
     @Override
index b4acf055084ada0860f603cc3fbfdc6806dabb8e..77620234df28c645b0007f5743425cc4ce0c922b 100644 (file)
@@ -29,10 +29,10 @@ public final class VpnIpv6RIBSupport extends AbstractVpnRIBSupport<VpnIpv6Routes
      */
     public VpnIpv6RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
         super(mappingService,
-                VpnIpv6RoutesCase.class,
-                VpnIpv6Routes.class, VpnIpv6Routes.QNAME,
-                Ipv6AddressFamily.VALUE,
-                VpnIpv6Destination.QNAME);
+            VpnIpv6RoutesCase.class, VpnIpv6RoutesCase.QNAME,
+            VpnIpv6Routes.class, VpnIpv6Routes.QNAME,
+            Ipv6AddressFamily.VALUE, Ipv6AddressFamily.QNAME,
+            VpnIpv6Destination.QNAME);
     }
 
     @Override
index 189382cea2ece2dee96dd5bd0bd403375964608a..1545b09f57447a79d8f5f2f8cdfda51382cb010a 100644 (file)
@@ -63,25 +63,26 @@ abstract class AbstractLabeledUnicastRIBSupport<
      * node in instantiations of the rib grouping. It is assumed that this container is defined by
      * the same model which populates it with route grouping instantiation, and by extension with
      * the route attributes container.
+     *
      * @param mappingService  Binding Normalized Node Serializer
      * @param cazeClass Binding class of the AFI/SAFI-specific case statement, must not be null
      * @param containerClass Binding class of the container in routes choice, must not be null.
-     * @param addressFamilyClass address Family Class
+     * @param afi address Family Class
      * @param destinationQname destination Qname
      */
     AbstractLabeledUnicastRIBSupport(
             final BindingNormalizedNodeSerializer mappingService,
-            final Class<C> cazeClass,
-            final Class<S> containerClass,
-            final AddressFamily addressFamilyClass,
+            final Class<C> cazeClass, final QName cazeQName,
+            final Class<S> containerClass, final QName containerQName,
+            final AddressFamily afi, final QName afiQName,
             final QName destinationQname) {
         super(mappingService,
-                cazeClass,
-                containerClass,
-                LabeledUnicastRoute.class,
-                addressFamilyClass,
-                LabeledUnicastSubsequentAddressFamily.VALUE,
-                destinationQname);
+            cazeClass, cazeQName,
+            containerClass, containerQName,
+            LabeledUnicastRoute.class, LabeledUnicastRoute.QNAME,
+            afi, afiQName,
+            LabeledUnicastSubsequentAddressFamily.VALUE, LabeledUnicastSubsequentAddressFamily.QNAME,
+            destinationQname);
     }
 
     @Override
index f770211e03d86b55d3ed5c7edcdbea4411e522d1..1cdf3a213de7e6d22ba13b651e983db35a926dc9 100644 (file)
@@ -24,10 +24,10 @@ public final class LabeledUnicastIpv4RIBSupport
         extends AbstractLabeledUnicastRIBSupport<LabeledUnicastRoutesCase, LabeledUnicastRoutes> {
     public LabeledUnicastIpv4RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
         super(mappingService,
-                LabeledUnicastRoutesCase.class,
-                LabeledUnicastRoutes.class,
-                Ipv4AddressFamily.VALUE,
-                DestinationLabeledUnicast.QNAME);
+            LabeledUnicastRoutesCase.class, LabeledUnicastRoutesCase.QNAME,
+            LabeledUnicastRoutes.class, LabeledUnicastRoutes.QNAME,
+            Ipv4AddressFamily.VALUE, Ipv4AddressFamily.QNAME,
+            DestinationLabeledUnicast.QNAME);
     }
 
     @Override
index 8e1696403489920d152577c990d80813af98ceae..a38a424c1f144b772edeea31fb433daa4049d8ec 100644 (file)
@@ -24,10 +24,10 @@ final class LabeledUnicastIpv6RIBSupport
         extends AbstractLabeledUnicastRIBSupport<LabeledUnicastIpv6RoutesCase, LabeledUnicastIpv6Routes> {
     LabeledUnicastIpv6RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
         super(mappingService,
-                LabeledUnicastIpv6RoutesCase.class,
-                LabeledUnicastIpv6Routes.class,
-                Ipv6AddressFamily.VALUE,
-                DestinationIpv6LabeledUnicast.QNAME);
+            LabeledUnicastIpv6RoutesCase.class, LabeledUnicastIpv6RoutesCase.QNAME,
+            LabeledUnicastIpv6Routes.class, LabeledUnicastIpv6Routes.QNAME,
+            Ipv6AddressFamily.VALUE, Ipv6AddressFamily.QNAME,
+            DestinationIpv6LabeledUnicast.QNAME);
     }
 
     @Override
index aaa2cacc01e4e6979519bb02925a53c30719a40f..4df6b0f36052d536a52f7023aec1ab7d7dc4941d 100644 (file)
@@ -48,14 +48,13 @@ public final class LinkstateRIBSupport
     private static final NodeIdentifier NLRI_ROUTES_LIST = NodeIdentifier.create(CLinkstateDestination.QNAME);
 
     public LinkstateRIBSupport(final BindingNormalizedNodeSerializer mappingService) {
-        super(
-                mappingService,
-                LinkstateRoutesCase.class,
-                LinkstateRoutes.class,
-                LinkstateRoute.class,
-                LinkstateAddressFamily.VALUE,
-                LinkstateSubsequentAddressFamily.VALUE,
-                DestinationLinkstate.QNAME);
+        super(mappingService,
+            LinkstateRoutesCase.class, LinkstateRoutesCase.QNAME,
+            LinkstateRoutes.class, LinkstateRoutes.QNAME,
+            LinkstateRoute.class, LinkstateRoute.QNAME,
+            LinkstateAddressFamily.VALUE, LinkstateAddressFamily.QNAME,
+            LinkstateSubsequentAddressFamily.VALUE, LinkstateSubsequentAddressFamily.QNAME,
+            DestinationLinkstate.QNAME);
     }
 
     private NodeIdentifierWithPredicates createRouteKey(final UnkeyedListEntryNode linkstate) {
index e43aaac2b509bc3fbfba9a6a4ffcc9c005b6e159..122a35e01611401e1d04f59a1a207ac2057a4d78 100644 (file)
@@ -64,25 +64,25 @@ abstract class AbstractMvpnRIBSupport<C extends Routes & DataObject & ChoiceIn<T
      */
     AbstractMvpnRIBSupport(
             final BindingNormalizedNodeSerializer mappingService,
-            final Class<C> cazeClass,
-            final Class<S> containerClass,
-            final AddressFamily afiClass,
+            final Class<C> cazeClass, final QName cazeQName,
+            final Class<S> containerClass, final QName containerQName,
+            final AddressFamily afi, final QName afiQName,
             final QName destContainerQname,
             final QName destListQname) {
-        super(mappingService, cazeClass, containerClass, MvpnRoute.class, afiClass,
-                McastVpnSubsequentAddressFamily.VALUE, destContainerQname);
-        this.nlriRoutesList = NodeIdentifier.create(destListQname);
-        this.cacheableNlriObjects = ImmutableSet.of(cazeClass);
-
+        super(mappingService, cazeClass, cazeQName, containerClass, containerQName, MvpnRoute.class, MvpnRoute.QNAME,
+            afi, afiQName, McastVpnSubsequentAddressFamily.VALUE, McastVpnSubsequentAddressFamily.QNAME,
+            destContainerQname);
+        nlriRoutesList = NodeIdentifier.create(destListQname);
+        cacheableNlriObjects = ImmutableSet.of(cazeClass);
     }
 
     @Override
     public final ImmutableCollection<Class<? extends BindingObject>> cacheableNlriObjects() {
-        return this.cacheableNlriObjects;
+        return cacheableNlriObjects;
     }
 
     final MvpnChoice extractMvpnChoice(final DataContainerNode route) {
-        final DataObject nn = this.mappingService.fromNormalizedNode(this.routeDefaultYii, route).getValue();
+        final DataObject nn = mappingService.fromNormalizedNode(routeDefaultYii, route).getValue();
         return ((MvpnRoute) nn).getMvpnChoice();
     }
 
@@ -94,7 +94,7 @@ abstract class AbstractMvpnRIBSupport<C extends Routes & DataObject & ChoiceIn<T
             final ContainerNode attributes,
             final ApplyRoute function) {
         if (destination != null) {
-            final DataContainerChild routes = destination.childByArg(this.nlriRoutesList);
+            final DataContainerChild routes = destination.childByArg(nlriRoutesList);
             if (routes != null) {
                 if (routes instanceof UnkeyedListNode) {
                     final YangInstanceIdentifier base = routesYangInstanceIdentifier(routesPath);
index b6ceab91920777c801afc3b8c2ef93c7d1e2e118..e12a458cd8b3f87ecd7268d2465d68a8b6370487 100644 (file)
@@ -39,11 +39,11 @@ import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
 final class MvpnIpv4RIBSupport extends AbstractMvpnRIBSupport<MvpnRoutesIpv4Case, MvpnRoutesIpv4> {
     MvpnIpv4RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
         super(mappingService,
-                MvpnRoutesIpv4Case.class,
-                MvpnRoutesIpv4.class,
-                Ipv4AddressFamily.VALUE,
-                DestinationMvpn.QNAME,
-                MvpnDestination.QNAME);
+            MvpnRoutesIpv4Case.class, MvpnRoutesIpv4Case.QNAME,
+            MvpnRoutesIpv4.class, MvpnRoutesIpv4.QNAME,
+            Ipv4AddressFamily.VALUE, Ipv4AddressFamily.QNAME,
+            DestinationMvpn.QNAME,
+            MvpnDestination.QNAME);
     }
 
     private List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv4.rev180417.mvpn
index e8b28719d43f88f12a688c22bb25f0c8b85a4f68..42087e496d4636a63508c4ad5ef3c0644a52d5e2 100644 (file)
@@ -39,11 +39,11 @@ import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
 final class MvpnIpv6RIBSupport extends AbstractMvpnRIBSupport<MvpnRoutesIpv6Case, MvpnRoutesIpv6> {
     MvpnIpv6RIBSupport(final BindingNormalizedNodeSerializer mappingService) {
         super(mappingService,
-                MvpnRoutesIpv6Case.class,
-                MvpnRoutesIpv6.class,
-                Ipv6AddressFamily.VALUE,
-                DestinationMvpn.QNAME,
-                MvpnDestination.QNAME);
+            MvpnRoutesIpv6Case.class, MvpnRoutesIpv6Case.QNAME,
+            MvpnRoutesIpv6.class, MvpnRoutesIpv6.QNAME,
+            Ipv6AddressFamily.VALUE, Ipv6AddressFamily.QNAME,
+            DestinationMvpn.QNAME,
+            MvpnDestination.QNAME);
     }
 
     private List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.ipv6.rev180417.mvpn
index e637a88d236aebf4e1f64cb7129187b6c4be0064..5eb40d82fbe1e86b6c1f5575bc2f2036ad83bf0a 100644 (file)
@@ -81,12 +81,12 @@ public final class RouteTargetConstrainRIBSupport
      */
     public RouteTargetConstrainRIBSupport(final BindingNormalizedNodeSerializer mappingService) {
         super(mappingService,
-                RouteTargetConstrainRoutesCase.class,
-                RouteTargetConstrainRoutes.class,
-                RouteTargetConstrainRoute.class,
-                Ipv4AddressFamily.VALUE,
-                RouteTargetConstrainSubsequentAddressFamily.VALUE,
-                DestinationRouteTargetConstrain.QNAME);
+            RouteTargetConstrainRoutesCase.class, RouteTargetConstrainRoutesCase.QNAME,
+            RouteTargetConstrainRoutes.class, RouteTargetConstrainRoutes.QNAME,
+            RouteTargetConstrainRoute.class, RouteTargetConstrainRoute.QNAME,
+            Ipv4AddressFamily.VALUE, Ipv4AddressFamily.QNAME,
+            RouteTargetConstrainSubsequentAddressFamily.VALUE, RouteTargetConstrainSubsequentAddressFamily.QNAME,
+            DestinationRouteTargetConstrain.QNAME);
         originAsNid = new NodeIdentifier(QName.create(routeQName(), ORIGIN_AS).intern());
     }
 
index 0c60426dad7007790303fe57738c8187a20df4ce..da5459708051fc1a3c04704fd558d690135999d9 100644 (file)
@@ -30,7 +30,6 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.bgp.concepts.RouteDistinguisherUtil;
 import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
-import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.Update;
@@ -150,32 +149,32 @@ public abstract class AbstractRIBSupport<
      */
     protected AbstractRIBSupport(
             final BindingNormalizedNodeSerializer mappingService,
-            final Class<C> cazeClass,
-            final Class<S> containerClass,
-            final Class<R> listClass,
-            final AddressFamily afi,
-            final SubsequentAddressFamily safi,
+            final Class<C> cazeClass, final QName cazeQName,
+            final Class<S> containerClass, final QName containerQName,
+            final Class<R> listClass, final QName listQName,
+            final AddressFamily afi, final QName afiQName,
+            final SubsequentAddressFamily safi, final QName safiQName,
             final QName destContainerQname) {
-        final QNameModule module = BindingReflections.getQNameModule(cazeClass);
-        routesContainerIdentifier = NodeIdentifier.create(
-            BindingReflections.findQName(containerClass).bindTo(module));
-        routeAttributesIdentifier = NodeIdentifier.create(Attributes.QNAME.bindTo(module));
-        this.cazeClass = requireNonNull(cazeClass);
         this.mappingService = requireNonNull(mappingService);
+        this.cazeClass = requireNonNull(cazeClass);
         this.containerClass = requireNonNull(containerClass);
         this.listClass = requireNonNull(listClass);
-        routeQname = BindingReflections.findQName(listClass).bindTo(module);
+        tk = new TablesKey(afi, safi);
+        tablesKey = NodeIdentifierWithPredicates.of(Tables.QNAME,
+            TABLES_KEY_TEMPLATE.instantiateWithValues(afiQName, safiQName));
+        destinationNid = NodeIdentifier.create(destContainerQname);
+
+        final QNameModule module = cazeQName.getModule();
+        routesContainerIdentifier = NodeIdentifier.create(containerQName.bindTo(module));
+        routeAttributesIdentifier = NodeIdentifier.create(Attributes.QNAME.bindTo(module));
+        routeQname = listQName.bindTo(module);
         routeKeyQname = QName.create(module, ROUTE_KEY).intern();
         routesListIdentifier = NodeIdentifier.create(routeQname);
-        tk = new TablesKey(afi, safi);
-        tablesKey = NodeIdentifierWithPredicates.of(Tables.QNAME, TABLES_KEY_TEMPLATE.instantiateWithValues(
-            BindingReflections.getQName(afi), BindingReflections.getQName(safi)));
 
         emptyTable = (MapEntryNode) this.mappingService
                 .toNormalizedNode(TABLES_II, new TablesBuilder().withKey(tk)
                         .setAttributes(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib
                                 .rev180329.rib.tables.AttributesBuilder().build()).build()).getValue();
-        destinationNid = NodeIdentifier.create(destContainerQname);
         pathIdNid = NodeIdentifier.create(QName.create(routeQName(), "path-id").intern());
         prefixTypeNid = NodeIdentifier.create(QName.create(destContainerQname, "prefix").intern());
         rdNid = NodeIdentifier.create(QName.create(destContainerQname, "route-distinguisher").intern());
index a16f197e406df18d9096523da84f94ed9cfc2c9a..816de6db709ce1cf123bc72a368c2a91f1c3f3d2 100644 (file)
@@ -32,8 +32,9 @@ public final class RIBSupportTestImp extends AbstractRIBSupport<Ipv4RoutesCase,
             QName.create(Ipv4Route.QNAME, ROUTE_KEY).intern(), PREFIX);
 
     public RIBSupportTestImp(final BindingNormalizedNodeSerializer mappingService) {
-        super(mappingService, Ipv4RoutesCase.class, Ipv4Routes.class, Ipv4Route.class, Ipv4AddressFamily.VALUE,
-            UnicastSubsequentAddressFamily.VALUE, Ipv4Prefixes.QNAME);
+        super(mappingService, Ipv4RoutesCase.class, Ipv4RoutesCase.QNAME, Ipv4Routes.class, Ipv4Routes.QNAME,
+            Ipv4Route.class, Ipv4Route.QNAME, Ipv4AddressFamily.VALUE, Ipv4AddressFamily.QNAME,
+            UnicastSubsequentAddressFamily.VALUE, UnicastSubsequentAddressFamily.QNAME, Ipv4Prefixes.QNAME);
     }
 
     @Override