X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fconnect%2Fnetconf%2Flistener%2FNetconfSessionPreferences.java;h=ac86e1da6bc1d5e522b1af89443cf4ea74fc3011;hb=c912a67e60d46bbfd47fa09da5953ec8ed5caa6b;hp=572885bcef4f2fda9fdaddafc62f852c2fcd280c;hpb=a8cdfe15e97b0ca8f683a2d0aed1b37ab15618e0;p=controller.git diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/listener/NetconfSessionPreferences.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/listener/NetconfSessionPreferences.java index 572885bcef..ac86e1da6b 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/listener/NetconfSessionPreferences.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/listener/NetconfSessionPreferences.java @@ -1,6 +1,6 @@ package org.opendaylight.controller.sal.connect.netconf.listener; -import com.google.common.base.Objects; +import com.google.common.base.MoreObjects; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.base.Predicate; @@ -83,7 +83,7 @@ public final class NetconfSessionPreferences { @Override public String toString() { - return Objects.toStringHelper(this) + return MoreObjects.toStringHelper(this) .add("capabilities", nonModuleCaps) .add("moduleBasedCapabilities", moduleBasedCaps) .add("rollback", isRollbackSupported()) @@ -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 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 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) {