Do not pass explicit TableKey around 86/79986/2
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 29 Jan 2019 08:08:03 +0000 (09:08 +0100)
committerRobert Varga <nite@hq.sk>
Tue, 29 Jan 2019 13:59:35 +0000 (13:59 +0000)
TableKey is derived from RIBSupport, hence if we are passing
RIBSupport somewhere, we do not need to pass TableKey, too.

Change-Id: I30b2196cbcf16201f5885c5af9d1f5b2fed8c8d7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/LocRibWriter.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/RouteEntryDependenciesContainerImpl.java

index f21678b42a6321aac03314baa540b7bfc0cab906..7b8991e5ec7dcda23e5e2dfca3e00f2f31ab1ad6 100644 (file)
@@ -88,12 +88,11 @@ final class LocRibWriter<C extends Routes & DataObject & ChoiceIn<Tables>, S ext
     private final RouteEntryDependenciesContainerImpl entryDep;
     private final BGPPeerTracker peerTracker;
     private final KeyedInstanceIdentifier<Rib, RibKey> ribIId;
-    private final TablesKey tk;
     private final KeyedInstanceIdentifier<Tables, TablesKey> locRibTableIID;
 
     private BindingTransactionChain chain;
     @GuardedBy("this")
-    private ListenerRegistration<LocRibWriter> reg;
+    private ListenerRegistration<?> reg;
 
     private LocRibWriter(final RIBSupport<C, S, R, I> ribSupport,
             final BindingTransactionChain chain,
@@ -102,21 +101,19 @@ final class LocRibWriter<C extends Routes & DataObject & ChoiceIn<Tables>, S ext
             final DataBroker dataBroker,
             final BGPRibRoutingPolicy ribPolicies,
             final BGPPeerTracker peerTracker,
-            final TablesKey tablesKey,
             final Class<? extends AfiSafiType> afiSafiType,
             final PathSelectionMode pathSelectionMode) {
         this.chain = requireNonNull(chain);
         this.ribIId = requireNonNull(ribIId);
-        this.tk = requireNonNull(tablesKey);
-        this.locRibTableIID = ribIId.child(LocRib.class).child(Tables.class, this.tk);
+        this.ribSupport = requireNonNull(ribSupport);
+        this.locRibTableIID = ribIId.child(LocRib.class).child(Tables.class, ribSupport.getTablesKey());
         this.ourAs = ourAs;
         this.dataBroker = requireNonNull(dataBroker);
-        this.ribSupport = requireNonNull(ribSupport);
         this.peerTracker = peerTracker;
         this.pathSelectionMode = pathSelectionMode;
 
         this.entryDep = new RouteEntryDependenciesContainerImpl(this.ribSupport, this.peerTracker, ribPolicies,
-                tablesKey, afiSafiType, this.locRibTableIID);
+                afiSafiType, this.locRibTableIID);
         init();
     }
 
@@ -124,7 +121,6 @@ final class LocRibWriter<C extends Routes & DataObject & ChoiceIn<Tables>, S ext
                 R extends Route & ChildOf<? super S> & Identifiable<I>, I extends Identifier<R>>
                 LocRibWriter<C, S, R, I> create(
             @Nonnull final RIBSupport<C, S, R, I> ribSupport,
-            @Nonnull final TablesKey tablesKey,
             @Nonnull final Class<? extends AfiSafiType> afiSafiType,
             @Nonnull final BindingTransactionChain chain,
             @Nonnull final KeyedInstanceIdentifier<Rib, RibKey> ribIId,
@@ -134,7 +130,7 @@ final class LocRibWriter<C extends Routes & DataObject & ChoiceIn<Tables>, S ext
             @Nonnull final BGPPeerTracker peerTracker,
             @Nonnull final PathSelectionMode pathSelectionStrategy) {
         return new LocRibWriter<>(ribSupport, chain, ribIId, ourAs.getValue(), dataBroker, ribPolicies,
-                peerTracker, tablesKey, afiSafiType, pathSelectionStrategy);
+                peerTracker, afiSafiType, pathSelectionStrategy);
     }
 
     private synchronized void init() {
@@ -155,7 +151,7 @@ final class LocRibWriter<C extends Routes & DataObject & ChoiceIn<Tables>, S ext
         }, MoreExecutors.directExecutor());
 
         final InstanceIdentifier<Tables> tableId = this.ribIId.builder().child(Peer.class)
-                .child(EffectiveRibIn.class).child(Tables.class, this.tk).build();
+                .child(EffectiveRibIn.class).child(Tables.class, getTableKey()).build();
         this.reg = this.dataBroker.registerDataTreeChangeListener(
                 new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL, tableId), this);
     }
@@ -383,7 +379,7 @@ final class LocRibWriter<C extends Routes & DataObject & ChoiceIn<Tables>, S ext
     }
 
     TablesKey getTableKey() {
-        return this.tk;
+        return this.ribSupport.getTablesKey();
     }
 
     @Override
index 3cde887fe9df4f3fb032829e5ddfdea72526978a..2fb185b9192c4c72a7c4203b6c2685b480c45370 100755 (executable)
@@ -193,9 +193,8 @@ public final class RIBImpl extends BGPRIBStateImpl implements RIB, TransactionCh
             pathSelectionStrategy = BasePathSelectionModeFactory.createBestPathSelectionStrategy();
         }
 
-        final LocRibWriter locRibWriter = LocRibWriter.create(
+        final LocRibWriter<C, S, R, I> locRibWriter = LocRibWriter.create(
                 ribSupport,
-                key,
                 this.tableTypeRegistry.getAfiSafiType(key).get(),
                 txChain,
                 getInstanceIdentifier(),
index 4f392d6d6a1da1c43a2dbe270f5ad839e79e051d..dca46e6f2605b98d2ef20be8135b4c26682e15a3 100644 (file)
@@ -27,7 +27,6 @@ import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 
 final class RouteEntryDependenciesContainerImpl implements RouteEntryDependenciesContainer {
     private final RIBSupport<?, ?, ?, ?> ribSupport;
-    private final TablesKey tablesKey;
     private final KeyedInstanceIdentifier<Tables, TablesKey> locRibTarget;
     private final BGPRibRoutingPolicy routingPolicies;
     private final Class<? extends AfiSafiType> afiSafiType;
@@ -37,12 +36,10 @@ final class RouteEntryDependenciesContainerImpl implements RouteEntryDependencie
             final RIBSupport<?, ?, ?, ?> ribSupport,
             final BGPPeerTracker peerTracker,
             final BGPRibRoutingPolicy routingPolicies,
-            final TablesKey tablesKey,
             final Class<? extends AfiSafiType> afiSafiType,
             final KeyedInstanceIdentifier<Tables, TablesKey> locRibTarget) {
         this.ribSupport = requireNonNull(ribSupport);
         this.peerTracker = requireNonNull(peerTracker);
-        this.tablesKey = requireNonNull(tablesKey);
         this.afiSafiType = requireNonNull(afiSafiType);
         this.routingPolicies = requireNonNull(routingPolicies);
         this.locRibTarget = requireNonNull(locRibTarget);
@@ -58,7 +55,7 @@ final class RouteEntryDependenciesContainerImpl implements RouteEntryDependencie
 
     @Override
     public TablesKey getLocalTablesKey() {
-        return this.tablesKey;
+        return this.ribSupport.getTablesKey();
     }
 
     @Override