Move RemoteDeviceId
[netconf.git] / netconf / sal-netconf-connector / src / main / java / org / opendaylight / netconf / sal / connect / netconf / listener / NetconfDeviceCommunicator.java
index 510de677852c6203b7e0c91eba0a1ea0aabbba55..2b6e8aaa89699d15f55da9565759589ee2361ed4 100644 (file)
@@ -16,12 +16,12 @@ import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Optional;
 import java.util.Queue;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.netconf.api.FailedNetconfMessage;
 import org.opendaylight.netconf.api.NetconfDocumentedException;
 import org.opendaylight.netconf.api.NetconfMessage;
@@ -36,8 +36,8 @@ import org.opendaylight.netconf.client.conf.NetconfClientConfiguration;
 import org.opendaylight.netconf.client.conf.NetconfReconnectingClientConfiguration;
 import org.opendaylight.netconf.sal.connect.api.RemoteDevice;
 import org.opendaylight.netconf.sal.connect.api.RemoteDeviceCommunicator;
+import org.opendaylight.netconf.sal.connect.api.RemoteDeviceId;
 import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil;
-import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
 import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.ErrorTag;
@@ -52,7 +52,7 @@ public class NetconfDeviceCommunicator implements NetconfClientSessionListener,
     private static final Logger LOG = LoggerFactory.getLogger(NetconfDeviceCommunicator.class);
 
     protected final RemoteDevice<NetconfDeviceCommunicator> remoteDevice;
-    private final Optional<UserPreferences> overrideNetconfCapabilities;
+    private final @Nullable UserPreferences overrideNetconfCapabilities;
     protected final RemoteDeviceId id;
     private final Lock sessionLock = new ReentrantLock();
 
@@ -78,20 +78,14 @@ public class NetconfDeviceCommunicator implements NetconfClientSessionListener,
         return closing != 0;
     }
 
-    public NetconfDeviceCommunicator(final RemoteDeviceId id,
-            final RemoteDevice<NetconfDeviceCommunicator> remoteDevice,
-            final UserPreferences netconfSessionPreferences, final int rpcMessageLimit) {
-        this(id, remoteDevice, Optional.of(netconfSessionPreferences), rpcMessageLimit);
-    }
-
     public NetconfDeviceCommunicator(final RemoteDeviceId id,
             final RemoteDevice<NetconfDeviceCommunicator> remoteDevice, final int rpcMessageLimit) {
-        this(id, remoteDevice, Optional.empty(), rpcMessageLimit);
+        this(id, remoteDevice, rpcMessageLimit, null);
     }
 
-    private NetconfDeviceCommunicator(final RemoteDeviceId id,
-            final RemoteDevice<NetconfDeviceCommunicator> remoteDevice,
-            final Optional<UserPreferences> overrideNetconfCapabilities, final int rpcMessageLimit) {
+    public NetconfDeviceCommunicator(final RemoteDeviceId id,
+            final RemoteDevice<NetconfDeviceCommunicator> remoteDevice, final int rpcMessageLimit,
+            final @Nullable UserPreferences overrideNetconfCapabilities) {
         concurentRpcMsgs = rpcMessageLimit;
         this.id = id;
         this.remoteDevice = remoteDevice;
@@ -106,19 +100,17 @@ public class NetconfDeviceCommunicator implements NetconfClientSessionListener,
             LOG.debug("{}: Session established", id);
             currentSession = session;
 
-            NetconfSessionPreferences netconfSessionPreferences =
-                                             NetconfSessionPreferences.fromNetconfSession(session);
-            LOG.trace("{}: Session advertised capabilities: {}", id,
-                    netconfSessionPreferences);
+            var netconfSessionPreferences = NetconfSessionPreferences.fromNetconfSession(session);
+            LOG.trace("{}: Session advertised capabilities: {}", id, netconfSessionPreferences);
 
-            if (overrideNetconfCapabilities.isPresent()) {
-                final NetconfSessionPreferences sessionPreferences = overrideNetconfCapabilities
-                        .get().getSessionPreferences();
-                netconfSessionPreferences = overrideNetconfCapabilities.get().moduleBasedCapsOverrided()
+            final var localOverride = overrideNetconfCapabilities;
+            if (localOverride != null) {
+                final var sessionPreferences = localOverride.sessionPreferences();
+                netconfSessionPreferences = localOverride.overrideModuleCapabilities()
                         ? netconfSessionPreferences.replaceModuleCaps(sessionPreferences)
                         : netconfSessionPreferences.addModuleCaps(sessionPreferences);
 
-                netconfSessionPreferences = overrideNetconfCapabilities.get().nonModuleBasedCapsOverrided()
+                netconfSessionPreferences = localOverride.overrideNonModuleCapabilities()
                         ? netconfSessionPreferences.replaceNonModuleCaps(sessionPreferences)
                         : netconfSessionPreferences.addNonModuleCaps(sessionPreferences);
                 LOG.debug("{}: Session capabilities overridden, capabilities that will be used: {}", id,
@@ -227,7 +219,7 @@ public class NetconfDeviceCommunicator implements NetconfClientSessionListener,
 
     private RpcResult<NetconfMessage> createSessionDownRpcResult() {
         return createErrorRpcResult(ErrorType.TRANSPORT,
-                String.format("The netconf session to %1$s is disconnected", id.getName()));
+                String.format("The netconf session to %1$s is disconnected", id.name()));
     }
 
     private static RpcResult<NetconfMessage> createErrorRpcResult(final ErrorType errorType, final String message) {
@@ -358,10 +350,10 @@ public class NetconfDeviceCommunicator implements NetconfClientSessionListener,
         try {
             if (semaphore != null && !semaphore.tryAcquire()) {
                 LOG.warn("Limit of concurrent rpc messages was reached (limit: {}). Rpc reply message is needed. "
-                    + "Discarding request of Netconf device with id: {}", concurentRpcMsgs, id.getName());
+                    + "Discarding request of Netconf device with id: {}", concurentRpcMsgs, id.name());
                 return FluentFutures.immediateFailedFluentFuture(new NetconfDocumentedException(
                         "Limit of rpc messages was reached (Limit :" + concurentRpcMsgs
-                        + ") waiting for emptying the queue of Netconf device with id: " + id.getName()));
+                        + ") waiting for emptying the queue of Netconf device with id: " + id.name()));
             }
 
             return sendRequestWithLock(message, rpc);