Update MRI projects for Aluminium
[bgpcep.git] / bgp / rib-impl / src / main / java / org / opendaylight / protocol / bgp / rib / impl / config / GracefulRestartUtil.java
index 7a33b2e3f76f4f06ee18962a1eae4f50b156ac8b..ef10ef8294a08db9ed46dd6490b51d4015395283 100644 (file)
@@ -12,12 +12,14 @@ import static org.opendaylight.protocol.bgp.parser.GracefulRestartUtil.gracefulR
 
 import com.google.common.collect.Maps;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
 import org.opendaylight.protocol.bgp.rib.impl.BgpPeerUtil;
@@ -28,12 +30,12 @@ import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.ll.graceful.restart.rev181112.Config1;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.ll.graceful.restart.rev181112.Config2;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.ll.graceful.restart.rev181112.afi.safi.ll.graceful.restart.LlGracefulRestart;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.open.message.BgpParameters;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.open.message.BgpParametersBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.open.message.bgp.parameters.OptionalCapabilities;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.open.message.bgp.parameters.OptionalCapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.open.message.bgp.parameters.optional.capabilities.CParameters;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.open.message.bgp.parameters.optional.capabilities.CParametersBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.open.message.BgpParameters;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.open.message.BgpParametersBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.open.message.bgp.parameters.OptionalCapabilities;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.open.message.bgp.parameters.OptionalCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.open.message.bgp.parameters.optional.capabilities.CParameters;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.open.message.bgp.parameters.optional.capabilities.CParametersBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.CParameters1;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.CParameters1Builder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.mp.capabilities.LlGracefulRestartCapabilityBuilder;
@@ -42,6 +44,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mult
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.mp.capabilities.ll.graceful.restart.capability.TablesBuilder;
 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.uint24.rev200104.Uint24;
+import org.opendaylight.yangtools.yang.binding.Identifiable;
 import org.opendaylight.yangtools.yang.common.Uint32;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -69,7 +72,7 @@ public final class GracefulRestartUtil {
                 final TablesKey key = entry.getKey();
                 return gracefulRestartTable(key.getAfi(), key.getSafi(), entry.getValue());
             })
-            .collect(Collectors.toList()), restartTime, localRestarting);
+            .collect(Collectors.toMap(Identifiable::key, Function.identity())), restartTime, localRestarting);
     }
 
     public static CParameters getLlGracefulCapability(final Set<BgpPeerUtil.LlGracefulRestartDTO> llGracefulRestarts) {
@@ -88,19 +91,21 @@ public final class GracefulRestartUtil {
                         .build()).build()).build();
     }
 
-    static Set<TablesKey> getGracefulTables(final List<AfiSafi> afiSafis,
+    static Set<TablesKey> getGracefulTables(final Collection<? extends AfiSafi> afiSafis,
                                             final BGPTableTypeRegistryConsumer tableTypeRegistry) {
         Set<TablesKey> gracefulTables = new HashSet<>();
         for (final AfiSafi afiSafi : afiSafis) {
-            if (afiSafi.getGracefulRestart() != null
-                    && afiSafi.getGracefulRestart().getConfig() != null
-                    && afiSafi.getGracefulRestart().getConfig().isEnabled()) {
-                final Class<? extends AfiSafiType> afiSafiName = afiSafi.getAfiSafiName();
-                if (afiSafiName != null) {
-                    final Optional<TablesKey> tableKey = tableTypeRegistry.getTableKey(afiSafiName);
-                    if (tableKey.isPresent()) {
-                        final TablesKey tablesKey = tableKey.get();
-                        gracefulTables.add(tablesKey);
+            final GracefulRestart gr = afiSafi.getGracefulRestart();
+            if (gr != null) {
+                final Config config = gr.getConfig();
+                if (config != null && Boolean.TRUE.equals(config.isEnabled())) {
+                    final Class<? extends AfiSafiType> afiSafiName = afiSafi.getAfiSafiName();
+                    if (afiSafiName != null) {
+                        final Optional<TablesKey> tableKey = tableTypeRegistry.getTableKey(afiSafiName);
+                        if (tableKey.isPresent()) {
+                            final TablesKey tablesKey = tableKey.get();
+                            gracefulTables.add(tablesKey);
+                        }
                     }
                 }
             }
@@ -108,7 +113,7 @@ public final class GracefulRestartUtil {
         return gracefulTables;
     }
 
-    static Map<TablesKey, Integer> getLlGracefulTimers(final List<AfiSafi> afiSafis,
+    static Map<TablesKey, Integer> getLlGracefulTimers(final Collection<? extends AfiSafi> afiSafis,
                                                        final BGPTableTypeRegistryConsumer tableTypeRegistry) {
         final Map<TablesKey, Integer> timers = new HashMap<>();
         afiSafis.forEach(afiSafi -> {