Merge "Reduce/enhance logging in AbstractLeader"
[controller.git] / opendaylight / md-sal / sal-netconf-connector / src / main / java / org / opendaylight / controller / sal / connect / netconf / listener / NetconfSessionPreferences.java
index 572885bcef4f2fda9fdaddafc62f852c2fcd280c..9493f977e08c75b96a4678755d3f1b23eae1ed17 100644 (file)
@@ -105,19 +105,21 @@ public final class NetconfSessionPreferences {
         return containsNonModuleCapability(NetconfMessageTransformUtil.NETCONF_RUNNING_WRITABLE_URI.toString());
     }
 
+    public boolean isNotificationsSupported() {
+        return containsNonModuleCapability(NetconfMessageTransformUtil.NETCONF_NOTIFICATONS_URI.toString())
+                || containsModuleCapability(NetconfMessageTransformUtil.IETF_NETCONF_NOTIFICATIONS);
+    }
+
     public boolean isMonitoringSupported() {
         return containsModuleCapability(NetconfMessageTransformUtil.IETF_NETCONF_MONITORING)
                 || containsNonModuleCapability(NetconfMessageTransformUtil.IETF_NETCONF_MONITORING.getNamespace().toString());
     }
 
-    public NetconfSessionPreferences replaceModuleCaps(final NetconfSessionPreferences netconfSessionModuleCapabilities) {
-        final Set<QName> moduleBasedCaps = Sets.newHashSet(netconfSessionModuleCapabilities.getModuleBasedCaps());
-
-        // Preserve monitoring module, since it indicates support for ietf-netconf-monitoring
-        if(containsModuleCapability(NetconfMessageTransformUtil.IETF_NETCONF_MONITORING)) {
-            moduleBasedCaps.add(NetconfMessageTransformUtil.IETF_NETCONF_MONITORING);
-        }
-        return new NetconfSessionPreferences(getNonModuleCaps(), moduleBasedCaps);
+    public NetconfSessionPreferences addModuleCaps(final NetconfSessionPreferences netconfSessionModuleCapabilities) {
+        final HashSet<QName> mergedCaps = Sets.newHashSetWithExpectedSize(moduleBasedCaps.size() + netconfSessionModuleCapabilities.getModuleBasedCaps().size());
+        mergedCaps.addAll(moduleBasedCaps);
+        mergedCaps.addAll(netconfSessionModuleCapabilities.getModuleBasedCaps());
+        return new NetconfSessionPreferences(getNonModuleCaps(), mergedCaps);
     }
 
     public static NetconfSessionPreferences fromNetconfSession(final NetconfClientSession session) {