Provide Empty table instead of empty route container 39/73039/1
authorClaudio D. Gasparini <claudio.gasparini@pantheon.tech>
Thu, 14 Jun 2018 16:18:57 +0000 (18:18 +0200)
committerClaudio D. Gasparini <claudio.gasparini@pantheon.tech>
Fri, 15 Jun 2018 14:25:57 +0000 (16:25 +0200)
by ribSupport.

Change-Id: Ie75c0005484caf749425551779e6e6a413c72f13
Signed-off-by: Claudio D. Gasparini <claudio.gasparini@pantheon.tech>
25 files changed:
bgp/evpn/src/test/java/org/opendaylight/protocol/bgp/evpn/impl/EvpnRibSupportTest.java
bgp/flowspec/src/test/java/org/opendaylight/protocol/bgp/flowspec/FlowspecIpv4RIBSupportTest.java
bgp/flowspec/src/test/java/org/opendaylight/protocol/bgp/flowspec/FlowspecIpv6RIBSupportTest.java
bgp/flowspec/src/test/java/org/opendaylight/protocol/bgp/flowspec/FlowspecL3vpnIpv4RIBSupportTest.java
bgp/flowspec/src/test/java/org/opendaylight/protocol/bgp/flowspec/FlowspecL3vpnIpv6RIBSupportTest.java
bgp/inet/src/test/java/org/opendaylight/protocol/bgp/inet/IPv4RIBSupportTest.java
bgp/inet/src/test/java/org/opendaylight/protocol/bgp/inet/IPv6RIBSupportTest.java
bgp/l3vpn/src/test/java/org/opendaylight/protocol/bgp/l3vpn/mcast/L3vpnMcastIpv4RIBSupportTest.java
bgp/l3vpn/src/test/java/org/opendaylight/protocol/bgp/l3vpn/mcast/L3vpnMcastIpv6RIBSupportTest.java
bgp/l3vpn/src/test/java/org/opendaylight/protocol/bgp/l3vpn/unicast/ipv4/VpnIpv4RIBSupportTest.java
bgp/l3vpn/src/test/java/org/opendaylight/protocol/bgp/l3vpn/unicast/ipv6/VpnIpv6RIBSupportTest.java
bgp/labeled-unicast/src/test/java/org/opendaylight/protocol/bgp/labeled/unicast/LabeledUnicastIpv4RIBSupportTest.java
bgp/labeled-unicast/src/test/java/org/opendaylight/protocol/bgp/labeled/unicast/LabeledUnicastIpv6RIBSupportTest.java
bgp/linkstate/src/test/java/org/opendaylight/protocol/bgp/linkstate/LinkstateRIBSupportTest.java
bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv4RIBSupportTest.java
bgp/mvpn/src/test/java/org/opendaylight/protocol/bgp/mvpn/impl/MvpnIpv6RIBSupportTest.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/RIBImpl.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/RIBSupportContextImpl.java
bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/config/RibImplTest.java
bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/AbstractRIBSupport.java
bgp/rib-spi/src/main/java/org/opendaylight/protocol/bgp/rib/spi/RIBSupport.java
bgp/rib-spi/src/test/java/org/opendaylight/protocol/bgp/rib/spi/AbstractRIBSupportTest.java
bgp/rib-spi/src/test/java/org/opendaylight/protocol/bgp/rib/spi/RIBSupportTest.java
bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/TableContext.java
bmp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/TablesUtil.java

index 0311463bec073d852d640ec5e3f7a74c0067bb8b..d25b33a60e8cb0a920e101c80b707b8dc7513912 100644 (file)
@@ -48,7 +48,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
 
@@ -117,8 +116,7 @@ public final class EvpnRibSupportTest extends AbstractRIBSupportTest<EvpnRoutesC
     public void testEmptyRoute() {
         final Routes empty = new EvpnRoutesCaseBuilder().setEvpnRoutes(
                 new EvpnRoutesBuilder().setEvpnRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode emptyRoutes = this.ribSupport.emptyRoutes();
-        assertEquals(createRoutes(empty), emptyRoutes);
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index 2d3fc7cf3c0eb4ee0241f8d2fdb12e6f80470718..9812f769db80dd5ff6e614fb4a2c661283674dbf 100644 (file)
@@ -46,7 +46,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
 
@@ -112,8 +111,7 @@ public class FlowspecIpv4RIBSupportTest extends AbstractRIBSupportTest<FlowspecR
     public void testEmptyRoute() {
         final Routes empty = new FlowspecRoutesCaseBuilder().setFlowspecRoutes(
             new FlowspecRoutesBuilder().setFlowspecRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode emptyRoutes = this.ribSupport.emptyRoutes();
-        assertEquals(createRoutes(empty), emptyRoutes);
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index db311fa26a44e8cc5278e4f5c4d6c63187cc20a0..c23279203eec001c0d60377a57acab7163cb701e 100644 (file)
@@ -46,7 +46,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
 
@@ -110,8 +109,7 @@ public class FlowspecIpv6RIBSupportTest extends AbstractRIBSupportTest<FlowspecI
     public void testEmptyRoute() {
         final Routes empty = new FlowspecIpv6RoutesCaseBuilder().setFlowspecIpv6Routes(
             new FlowspecIpv6RoutesBuilder().setFlowspecRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode emptyRoutes = this.ribSupport.emptyRoutes();
-        assertEquals(createRoutes(empty), emptyRoutes);
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index ea104803fd0dd71cf429333486c9cbb3b4ae7cb9..6293c83ce6b573da8130cd861b970f6069d3c0b0 100644 (file)
@@ -47,7 +47,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
 
@@ -104,11 +103,10 @@ public class FlowspecL3vpnIpv4RIBSupportTest extends AbstractRIBSupportTest<Flow
     }
 
     @Test
-    public void testEmptyRoute() throws Exception {
+    public void testEmptyRoute() {
         final Routes empty = new FlowspecL3vpnIpv4RoutesCaseBuilder().setFlowspecL3vpnIpv4Routes(
             new FlowspecL3vpnIpv4RoutesBuilder().setFlowspecL3vpnRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode emptyRoutes = this.ribSupport.emptyRoutes();
-        assertEquals(createRoutes(empty), emptyRoutes);
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index b7c9079ea7f5dbc953c282355c95b9fa429b5d07..194f7db9ec133a0813c7fa5ac0dcfbe1227929fd 100644 (file)
@@ -107,8 +107,7 @@ public class FlowspecL3vpnIpv6RIBSupportTest extends AbstractRIBSupportTest<Flow
     public void testEmptyRoute() {
         final Routes empty = new FlowspecL3vpnIpv6RoutesCaseBuilder().setFlowspecL3vpnIpv6Routes(
             new FlowspecL3vpnIpv6RoutesBuilder().setFlowspecL3vpnRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode emptyRoutes = this.ribSupport.emptyRoutes();
-        assertEquals(createRoutes(empty), emptyRoutes);
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index 9ef4c8404aee99f16077607b2b748d650a7cf149..6b53a896b9c73927ab86ecad21b0f5dc3a59d511 100644 (file)
@@ -42,7 +42,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
 
@@ -100,8 +99,7 @@ public final class IPv4RIBSupportTest extends AbstractRIBSupportTest<Ipv4RoutesC
     @Test
     public void testEmptyRoute() {
         final Routes empty = new Ipv4RoutesCaseBuilder().setIpv4Routes(EMPTY_ROUTES).build();
-        final ChoiceNode emptyRoutes = this.ribSupport.emptyRoutes();
-        assertEquals(createRoutes(empty), emptyRoutes);
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index 088c817827aeda9f5e91c78a3efcadc78278dd13..ffe084c92d36a89352011fc65053eaa016237bd0 100644 (file)
@@ -41,7 +41,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
 
@@ -100,8 +99,7 @@ public final class IPv6RIBSupportTest extends AbstractRIBSupportTest<Ipv6RoutesC
     @Test
     public void testEmptyRoute() {
         final Routes empty = new Ipv6RoutesCaseBuilder().setIpv6Routes(EMPTY_ROUTES).build();
-        final ChoiceNode emptyRoutes = this.ribSupport.emptyRoutes();
-        assertEquals(createRoutes(empty), emptyRoutes);
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index 142196b15d51b7249dcc49900c0686842400dd76..8966a4c7825e04f25a02cb077934b42620372cab 100644 (file)
@@ -46,7 +46,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
@@ -115,8 +114,7 @@ public class L3vpnMcastIpv4RIBSupportTest extends AbstractRIBSupportTest<L3vpnMc
         final Routes empty = new L3vpnMcastRoutesIpv4CaseBuilder()
                 .setL3vpnMcastRoutesIpv4(new L3vpnMcastRoutesIpv4Builder()
                         .setL3vpnMcastRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode expected = createRoutes(empty);
-        Assert.assertEquals(expected, this.ribSupport.emptyRoutes());
+        Assert.assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index fe92e475487cde37f3155e0b8bc1193443c2046c..81d0a5c723b1a90dcf5654809a086111e8fbc56c 100644 (file)
@@ -46,7 +46,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
@@ -115,8 +114,7 @@ public class L3vpnMcastIpv6RIBSupportTest extends AbstractRIBSupportTest<L3vpnMc
         final Routes empty = new L3vpnMcastRoutesIpv6CaseBuilder()
                 .setL3vpnMcastRoutesIpv6(new L3vpnMcastRoutesIpv6Builder()
                         .setL3vpnMcastRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode expected = createRoutes(empty);
-        Assert.assertEquals(expected, this.ribSupport.emptyRoutes());
+        Assert.assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index 87083ca65437d9715b303559e62ec7d331863086..a52504499f0e8c4c04e1facd8ac5b0dc42a54862 100644 (file)
@@ -43,7 +43,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
 
@@ -94,8 +93,7 @@ public class VpnIpv4RIBSupportTest extends AbstractRIBSupportTest<VpnIpv4RoutesC
     public void testEmptyRoute() {
         final Routes empty = new VpnIpv4RoutesCaseBuilder().setVpnIpv4Routes(new VpnIpv4RoutesBuilder()
                 .setVpnRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode emptyRoutes = this.ribSupport.emptyRoutes();
-        assertEquals(createRoutes(empty), emptyRoutes);
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index 28e3ad114cd64bfd9aea16cf4f3d545383099026..87de1075049e73c53eb03c2b145972e564bd45b8 100644 (file)
@@ -43,7 +43,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
 
@@ -93,8 +92,7 @@ public class VpnIpv6RIBSupportTest extends AbstractRIBSupportTest<VpnIpv6RoutesC
     public void testEmptyRoute() {
         final Routes empty = new VpnIpv6RoutesCaseBuilder().setVpnIpv6Routes(new VpnIpv6RoutesBuilder()
                 .setVpnRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode emptyRoutes = this.ribSupport.emptyRoutes();
-        assertEquals(createRoutes(empty), emptyRoutes);
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index 36b3800f3094abaed456c050710226b57ed8a8bb..c958521144066f00f15b2744fecc334eefbdbfe6 100644 (file)
@@ -51,7 +51,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
 
@@ -125,8 +124,7 @@ public class LabeledUnicastIpv4RIBSupportTest extends AbstractRIBSupportTest<Lab
     public void testEmptyRoute() {
         final Routes empty = new LabeledUnicastRoutesCaseBuilder().setLabeledUnicastRoutes(
             new LabeledUnicastRoutesBuilder().setLabeledUnicastRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode emptyRoutes = this.ribSupport.emptyRoutes();
-        assertEquals(createRoutes(empty), emptyRoutes);
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index 3e7f11a92968c12382b2efb8101c9a631de2cfc6..89443b24eca067435d667256a74d644b630494ec 100644 (file)
@@ -51,7 +51,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
 
@@ -123,8 +122,7 @@ public class LabeledUnicastIpv6RIBSupportTest extends AbstractRIBSupportTest<Lab
     public void testEmptyRoute() {
         final Routes empty = new LabeledUnicastIpv6RoutesCaseBuilder().setLabeledUnicastIpv6Routes(
             new LabeledUnicastIpv6RoutesBuilder().setLabeledUnicastRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode emptyRoutes = this.ribSupport.emptyRoutes();
-        assertEquals(createRoutes(empty), emptyRoutes);
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index 20f0d94bf538859332f1cafcfbc99030f91f4a7b..eb1091e0aad304f01a841ac98b29e4fb9050c013 100644 (file)
@@ -64,7 +64,6 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates;
 
@@ -141,8 +140,7 @@ public final class LinkstateRIBSupportTest extends AbstractRIBSupportTest<Linkst
     public void testEmptyRoute() {
         final Routes empty = new LinkstateRoutesCaseBuilder().setLinkstateRoutes(
             new LinkstateRoutesBuilder().setLinkstateRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode emptyRoutes = this.ribSupport.emptyRoutes();
-        assertEquals(createRoutes(empty), emptyRoutes);
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index de25a670d54c8f5878b1464dcc71e8859a5bdef8..96fa51e804e77419621b076162a6f94d7d5a2dd3 100644 (file)
@@ -48,7 +48,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
@@ -115,8 +114,7 @@ public class MvpnIpv4RIBSupportTest extends AbstractRIBSupportTest<MvpnRoutesIpv
     public void testEmptyRoute() {
         final Routes empty = new MvpnRoutesIpv4CaseBuilder().setMvpnRoutesIpv4(new MvpnRoutesIpv4Builder()
                 .setMvpnRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode expected = createRoutes(empty);
-        assertEquals(expected, this.ribSupport.emptyRoutes());
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index 49c7073680ca82134ac3d0774dade81c5230856e..4241eb9c5a678bb7cbfdc8667456a85dd2edbadb 100644 (file)
@@ -50,7 +50,6 @@ import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
@@ -116,8 +115,7 @@ public final class MvpnIpv6RIBSupportTest extends AbstractRIBSupportTest<MvpnRou
     public void testEmptyRoute() {
         final Routes empty = new MvpnRoutesIpv6CaseBuilder().setMvpnRoutesIpv6(new MvpnRoutesIpv6Builder()
                 .setMvpnRoute(Collections.emptyList()).build()).build();
-        final ChoiceNode expected = createRoutes(empty);
-        assertEquals(expected, this.ribSupport.emptyRoutes());
+        assertEquals(createEmptyTable(empty), this.ribSupport.emptyTable());
     }
 
     @Test
index 47308451160d23ad79a9c214f14db73befa16ba3..3fd2a7731fcbdacd6a6a686e30412daffd72db67 100755 (executable)
@@ -18,7 +18,6 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import javax.annotation.Nonnull;
@@ -48,7 +47,6 @@ import org.opendaylight.protocol.bgp.rib.impl.state.BGPRIBStateImpl;
 import org.opendaylight.protocol.bgp.rib.spi.BGPPeerTracker;
 import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionConsumerContext;
 import org.opendaylight.protocol.bgp.rib.spi.RIBSupport;
-import org.opendaylight.protocol.bgp.rib.spi.RibSupportUtils;
 import org.opendaylight.protocol.bgp.rib.spi.policy.BGPRibRoutingPolicy;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.BgpTableType;
@@ -68,12 +66,10 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
 import org.slf4j.Logger;
@@ -84,8 +80,6 @@ public final class RIBImpl extends BGPRIBStateImpl implements RIB, TransactionCh
         SchemaContextListener, AutoCloseable {
     private static final Logger LOG = LoggerFactory.getLogger(RIBImpl.class);
     private static final QName RIB_ID_QNAME = QName.create(Rib.QNAME, "id").intern();
-    private static final ContainerNode EMPTY_TABLE_ATTRIBUTES = ImmutableNodes.containerNode(org.opendaylight.yang
-            .gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.tables.Attributes.QNAME);
 
     private final BGPDispatcher dispatcher;
     private final AsNumber localAs;
@@ -157,24 +151,13 @@ public final class RIBImpl extends BGPRIBStateImpl implements RIB, TransactionCh
         // create locRibWriter for each table
         final DOMDataWriteTransaction tx = this.domChain.newWriteOnlyTransaction();
 
-        final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> table = ImmutableNodes.mapEntryBuilder();
-        table.withNodeIdentifier(RibSupportUtils.toYangTablesKey(key));
-        table.withChild(EMPTY_TABLE_ATTRIBUTES);
-
-        final NodeIdentifierWithPredicates tableKey = RibSupportUtils.toYangTablesKey(key);
-        final InstanceIdentifierBuilder tableId = YangInstanceIdentifier
-                .builder(this.yangRibId.node(LocRib.QNAME).node(Tables.QNAME));
-        tableId.nodeWithKey(tableKey.getNodeType(), tableKey.getKeyValues());
-        for (final Entry<QName, Object> e : tableKey.getKeyValues().entrySet()) {
-            table.withChild(ImmutableNodes.leafNode(e.getKey(), e.getValue()));
-        }
-
         final RIBSupport<? extends Routes, ?, ?, ?> ribSupport = this.ribContextRegistry.getRIBSupport(key);
         if (ribSupport != null) {
-            final ChoiceNode routes = ribSupport.emptyRoutes();
-            table.withChild(routes);
+            final MapEntryNode emptyTable = ribSupport.emptyTable();
+            final InstanceIdentifierBuilder tableId = YangInstanceIdentifier
+                    .builder(this.yangRibId.node(LocRib.QNAME).node(Tables.QNAME)).node(emptyTable.getIdentifier());
 
-            tx.put(LogicalDatastoreType.OPERATIONAL, tableId.build(), table.build());
+            tx.put(LogicalDatastoreType.OPERATIONAL, tableId.build(), emptyTable);
             try {
                 tx.commit().get();
             } catch (final InterruptedException | ExecutionException e1) {
index 82c41358da6d157323aabd8d235c6308a5dd4d1b..a16df083e12fe23bddd7615f7cb948e4e2a7c6c8 100644 (file)
@@ -9,9 +9,7 @@ package org.opendaylight.protocol.bgp.rib.impl;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.base.Verify;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.util.Map.Entry;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction;
 import org.opendaylight.protocol.bgp.rib.impl.spi.Codecs;
@@ -29,19 +27,10 @@ import org.opendaylight.yangtools.yang.binding.ChoiceIn;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.Identifiable;
 import org.opendaylight.yangtools.yang.binding.Identifier;
-import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder;
 
 class RIBSupportContextImpl extends RIBSupportContext {
-
-    private static final ContainerNode EMPTY_TABLE_ATTRIBUTES = ImmutableNodes.containerNode(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.tables.Attributes.QNAME);
-
     private final RIBSupport<?, ?, ?, ?> ribSupport;
     private final Codecs codecs;
 
@@ -60,22 +49,7 @@ class RIBSupportContextImpl extends RIBSupportContext {
 
     @Override
     public void createEmptyTableStructure(final DOMDataWriteTransaction tx, final YangInstanceIdentifier tableId) {
-        final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> tb = ImmutableNodes.mapEntryBuilder();
-        tb.withNodeIdentifier((NodeIdentifierWithPredicates)tableId.getLastPathArgument());
-        tb.withChild(EMPTY_TABLE_ATTRIBUTES);
-
-        // tableId is keyed, but that fact is not directly visible from YangInstanceIdentifier, see BUG-2796
-        final NodeIdentifierWithPredicates tableKey = (NodeIdentifierWithPredicates) tableId.getLastPathArgument();
-        for (final Entry<QName, Object> e : tableKey.getKeyValues().entrySet()) {
-            tb.withChild(ImmutableNodes.leafNode(e.getKey(), e.getValue()));
-        }
-
-        final ChoiceNode routes = this.ribSupport.emptyRoutes();
-        Verify.verifyNotNull(routes, "Null empty routes in %s", this.ribSupport);
-        Verify.verify(Routes.QNAME.equals(routes.getNodeType()),
-            "Empty routes have unexpected identifier %s, expected %s", routes.getNodeType(), Routes.QNAME);
-
-        tx.put(LogicalDatastoreType.OPERATIONAL, tableId, tb.withChild(routes).build());
+        tx.put(LogicalDatastoreType.OPERATIONAL, tableId, this.ribSupport.emptyTable());
     }
 
     @Override
index 0e804742c1f655c1791c42ba971c39c0027b6351..83ae6e5f67bc5f73eeab67829f00e5716b5fc377 100644 (file)
@@ -14,6 +14,7 @@ import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.primitives.Shorts;
 import java.util.ArrayList;
@@ -42,14 +43,16 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.BgpTableType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.GlobalAddPathsConfig;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.openconfig.extensions.rev180329.GlobalAddPathsConfigBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.bgp.rib.Rib;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.TablesKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.BgpId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.Ipv4AddressFamily;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.UnicastSubsequentAddressFamily;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
+import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.osgi.framework.ServiceRegistration;
 
 public class RibImplTest extends AbstractConfig {
@@ -90,10 +93,12 @@ public class RibImplTest extends AbstractConfig {
         final NodeIdentifier nii = new NodeIdentifier(QName.create("", "test").intern());
         Mockito.doReturn(nii).when(this.ribSupport).routeAttributesIdentifier();
         Mockito.doReturn(ImmutableSet.of()).when(this.ribSupport).cacheableAttributeObjects();
-        final ChoiceNode choiceNode = mock(ChoiceNode.class);
-        Mockito.doReturn(choiceNode).when(this.ribSupport).emptyRoutes();
-        Mockito.doReturn(nii).when(choiceNode).getIdentifier();
-        Mockito.doReturn(QName.create("", "test").intern()).when(choiceNode).getNodeType();
+        final MapEntryNode emptyTable = mock(MapEntryNode.class);
+        Mockito.doReturn(emptyTable).when(this.ribSupport).emptyTable();
+        final NodeIdentifierWithPredicates niie = new NodeIdentifierWithPredicates(Rib.QNAME,
+                ImmutableMap.of(QName.create("", "test").intern(), "t"));
+        Mockito.doReturn(niie).when(emptyTable).getIdentifier();
+        Mockito.doReturn(QName.create("", "test").intern()).when(emptyTable).getNodeType();
         Mockito.doReturn(this.domTx).when(this.domDataBroker).createTransactionChain(any());
         final DOMDataTreeChangeService dOMDataTreeChangeService = mock(DOMDataTreeChangeService.class);
         Mockito.doReturn(Collections.singletonMap(DOMDataTreeChangeService.class, dOMDataTreeChangeService))
index b7b2002af01d65e2e960c3938ac385d477d946c2..68df9174eac0e8399275da10caf54b60130c6521 100644 (file)
@@ -108,7 +108,7 @@ public abstract class AbstractRIBSupport<
     private final Class<S> containerClass;
     private final Class<R> listClass;
     private final ApplyRoute putRoute = new PutRoute();
-    private final ChoiceNode emptyRoutes;
+    private final MapEntryNode emptyTable;
     private final QName routeQname;
     private final Class<? extends AddressFamily> afiClass;
     private final Class<? extends SubsequentAddressFamily> safiClass;
@@ -155,11 +155,11 @@ public abstract class AbstractRIBSupport<
         this.routeQname = BindingReflections.findQName(listClass).withModule(module);
         this.routesListIdentifier = new NodeIdentifier(this.routeQname);
         this.tk = new TablesKey(afiClass, safiClass);
-        //FIXME Use Route Case IId instead of Tables IId.
-        this.emptyRoutes = (ChoiceNode) ((MapEntryNode) this.mappingService
+        this.emptyTable = (MapEntryNode) this.mappingService
                 .toNormalizedNode(TABLES_II, new TablesBuilder().withKey(tk)
-                        .setRoutes(emptyRoutesCase()).build()).getValue())
-                .getChild(new NodeIdentifier(BindingReflections.findQName(Routes.class))).get();
+                        .setRoutes(emptyRoutesCase())
+                        .setAttributes(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib
+                                .rev180329.rib.tables.AttributesBuilder().build()).build()).getValue();
         this.afiClass = afiClass;
         this.safiClass = safiClass;
         this.destinationNid = new NodeIdentifier(destContainerQname);
@@ -203,8 +203,8 @@ public abstract class AbstractRIBSupport<
     }
 
     @Override
-    public final ChoiceNode emptyRoutes() {
-        return this.emptyRoutes;
+    public final MapEntryNode emptyTable() {
+        return this.emptyTable;
     }
 
     public final QName routeQName() {
@@ -385,6 +385,7 @@ public abstract class AbstractRIBSupport<
     @Override
     public final InstanceIdentifier<R> createRouteIdentifier(
             final KeyedInstanceIdentifier<Tables, TablesKey> tableIId, final I key) {
+        //FIXME Cache
         return tableIId.child(routesCaseClass(), routesContainerClass()).child(routesListClass(), key);
     }
 
@@ -509,7 +510,7 @@ public abstract class AbstractRIBSupport<
         return null;
     }
 
-    protected YangInstanceIdentifier routesYangInstanceIdentifier(final YangInstanceIdentifier routesTablePaths) {
+    protected final YangInstanceIdentifier routesYangInstanceIdentifier(final YangInstanceIdentifier routesTablePaths) {
         return this.routesPath.getUnchecked(routesTablePaths);
     }
 }
index 9c65533bdb0258bedbb4560e8fcf1b2ae92ac12e..26719a0fa12390e5669fa0d71b7e68e61738f2a5 100644 (file)
@@ -32,7 +32,6 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
-import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
@@ -49,14 +48,14 @@ public interface RIBSupport<
         R extends Route & ChildOf<? super S> & Identifiable<I>,
         I extends Identifier<R>> {
     /**
-     * Return the table-type-specific empty routes container, as augmented into the
+     * Return the table-type-specific empty table with routes empty container, as augmented into the
      * bgp-rib model under /rib/tables/routes choice node. This needs to include all
      * the skeleton nodes under which the individual routes will be stored.
      *
      * @return Protocol-specific case in the routes choice, may not be null.
      */
     @Nonnull
-    ChoiceNode emptyRoutes();
+    MapEntryNode emptyTable();
 
     /**
      * Return the localized identifier of the attributes route member, as expanded
index 66fc748e483026711d89764b262ac0ab6c91ae65..2416e5cd34180357f30c9a8847864e09aa781e61 100644 (file)
@@ -148,6 +148,14 @@ public abstract class AbstractRIBSupportTest<C extends Routes & DataObject & Cho
         return (ContainerNode) this.mappingService.toNormalizedNode(ATTRIBUTES_IID, ATTRIBUTES).getValue();
     }
 
+    protected final MapEntryNode createEmptyTable(final Routes routes) {
+        final Tables tables = new TablesBuilder().withKey(getTablesKey())
+                .setAttributes(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329
+                        .rib.tables.AttributesBuilder().build())
+                .setRoutes(routes).build();
+        return (MapEntryNode) this.mappingService.toNormalizedNode(tablesIId(), tables).getValue();
+    }
+
     protected final ChoiceNode createRoutes(final Routes routes) {
         final Tables tables = new TablesBuilder().withKey(getTablesKey()).setRoutes(routes).build();
         return (ChoiceNode) ((MapEntryNode) this.mappingService.toNormalizedNode(tablesIId(), tables).getValue())
index b3a850ba9ad7e645ba719326a09b52aba5c01f3a..e27733e86f35f9e7ae94595134f0001e0b65ba22 100644 (file)
@@ -72,8 +72,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
 
 public class RIBSupportTest extends AbstractConcurrentDataBrokerTest {
@@ -186,15 +184,6 @@ public class RIBSupportTest extends AbstractConcurrentDataBrokerTest {
         assertEquals(Ipv4Route.QNAME,this.ribSupportTestImp.routeQName());
     }
 
-    @Test
-    public void emptyRoutes() {
-        final ChoiceNode emptyRoutes = Builders.choiceBuilder().withNodeIdentifier(ROUTES_IDENTIFIER)
-                .addChild(Builders.containerBuilder().withNodeIdentifier(IPV4_ROUTES_IDENTIFIER)
-                        .withChild(ImmutableNodes.mapNodeBuilder(ribSupportTestImp.routeQName())
-                                .build()).build()).build();
-        assertEquals(emptyRoutes,this.ribSupportTestImp.emptyRoutes());
-    }
-
     @Test
     public void routeNid() {
         assertEquals(new NodeIdentifier(Ipv4Route.QNAME),this.ribSupportTestImp.routeNid());
index 25ba9a41faf1f381251d1105a64020835f952ba1..c7a457ce6acd8fd6c072790ba58243397c13302a 100644 (file)
@@ -13,7 +13,6 @@ import static org.opendaylight.protocol.bmp.impl.app.TablesUtil.BMP_ATTRIBUTES_Q
 import static org.opendaylight.protocol.bmp.impl.app.TablesUtil.BMP_ROUTES_QNAME;
 
 import com.google.common.base.Preconditions;
-import com.google.common.base.Verify;
 import java.util.Map;
 import javax.annotation.concurrent.NotThreadSafe;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -54,7 +53,8 @@ final class TableContext {
     private static final InstanceIdentifier<MpUnreachNlri> MP_UNREACH_NLRI_II = InstanceIdentifier.create(Update.class)
             .child(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.path
                     .attributes.Attributes.class).augmentation(Attributes2.class).child(MpUnreachNlri.class);
-    private static final NodeIdentifier ROUTES_NODE_ID = new NodeIdentifier(BMP_ROUTES_QNAME);
+    private static final NodeIdentifier BGP_ROUTES_NODE_ID = new NodeIdentifier(BMP_ROUTES_QNAME);
+    private static final NodeIdentifier ROUTES_NODE_ID = new NodeIdentifier(Routes.QNAME);
 
     private final YangInstanceIdentifier tableId;
     private final RIBSupport tableSupport;
@@ -97,9 +97,8 @@ final class TableContext {
         for (final Map.Entry<QName, Object> e : tableKey.getKeyValues().entrySet()) {
             tb.withChild(ImmutableNodes.leafNode(e.getKey(), e.getValue()));
         }
-
-        final ChoiceNode routes = this.tableSupport.emptyRoutes();
-        Verify.verifyNotNull(routes, "Null empty routes in %s", this.tableSupport);
+        final ChoiceNode routes
+                = (ChoiceNode) this.tableSupport.emptyTable().getChild(ROUTES_NODE_ID).get();
 
         tx.put(LogicalDatastoreType.OPERATIONAL, this.tableId,
                 tb.withChild(ImmutableChoiceNodeBuilder.create(routes).withNodeIdentifier(
@@ -109,11 +108,11 @@ final class TableContext {
     void writeRoutes(final DOMDataWriteTransaction tx, final MpReachNlri nlri, final Attributes attributes) {
         final ContainerNode domNlri = serializeReachNlri(nlri);
         final ContainerNode routeAttributes = serializeAttributes(attributes);
-        this.tableSupport.putRoutes(tx, this.tableId, domNlri, routeAttributes, ROUTES_NODE_ID);
+        this.tableSupport.putRoutes(tx, this.tableId, domNlri, routeAttributes, BGP_ROUTES_NODE_ID);
     }
 
     void removeRoutes(final DOMDataWriteTransaction tx, final MpUnreachNlri nlri) {
-        this.tableSupport.deleteRoutes(tx, this.tableId, serializeUnreachNlri(nlri), ROUTES_NODE_ID);
+        this.tableSupport.deleteRoutes(tx, this.tableId, serializeUnreachNlri(nlri), BGP_ROUTES_NODE_ID);
     }
 
     private ContainerNode serializeUnreachNlri(final MpUnreachNlri nlri) {
index 84f9178536fbc96034fbbc66936e7ebe6c27ad45..fcb6cb608eae5ba10033f177d73678c97655fff4 100644 (file)
@@ -18,14 +18,15 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 
 public final class TablesUtil {
 
-    public static final QName BMP_TABLES_QNAME = QName.create(BmpMonitor.QNAME.getNamespace(),
-            BmpMonitor.QNAME.getRevision(), "tables").intern();
-    public static final QName BMP_ATTRIBUTES_QNAME = QName.create(BmpMonitor.QNAME.getNamespace(),
-            BmpMonitor.QNAME.getRevision(), "attributes").intern();
-    public static final QName BMP_ROUTES_QNAME = QName.create(BmpMonitor.QNAME.getNamespace(),
-            BmpMonitor.QNAME.getRevision(), "routes").intern();
-    public static final QName BMP_AFI_QNAME = QName.create(BMP_TABLES_QNAME, "afi").intern();
-    public static final QName BMP_SAFI_QNAME = QName.create(BMP_TABLES_QNAME, "safi").intern();
+    public static final QName BMP_TABLES_QNAME
+            = QName.create(BmpMonitor.QNAME.getModule(), "tables");
+    public static final QName BMP_ATTRIBUTES_QNAME =
+            QName.create(BmpMonitor.QNAME.getModule(), "attributes");
+    public static final QName BMP_ROUTES_QNAME = QName.create(BmpMonitor.QNAME.getModule(), "routes");
+    public static final QName BMP_AFI_QNAME = QName.create(BMP_TABLES_QNAME.getModule(), "afi");
+    public static final QName BMP_SAFI_QNAME = QName.create(BMP_TABLES_QNAME.getModule(), "safi");
+    private static final String AFI = "afi";
+    private static final String SAFI = "safi";
 
     private TablesUtil() {
         throw new UnsupportedOperationException("Utility class");
@@ -57,8 +58,8 @@ public final class TablesUtil {
     public static NodeIdentifierWithPredicates toYangTablesKey(final QName nodeName,
             final Class<? extends AddressFamily> afi,
             final Class<? extends SubsequentAddressFamily> safi) {
-        final QName afiQname = QName.create(nodeName, "afi").intern();
-        final QName safiQname = QName.create(nodeName, "safi").intern();
+        final QName afiQname = QName.create(nodeName, AFI).intern();
+        final QName safiQname = QName.create(nodeName, SAFI).intern();
         final ImmutableMap<QName, Object> keyValues = ImmutableMap.of(
                         afiQname, BindingReflections.findQName(afi),
                         safiQname, BindingReflections.findQName(safi));