Attempt netconf remount regardless of error-type
[netconf.git] / netconf / sal-netconf-connector / src / main / java / org / opendaylight / netconf / sal / connect / netconf / NetconfDeviceBuilder.java
index f5521e61f4acca2f876d1fa5aba457de6ebb6212..9d262568e95853a71f391316ed8547e93ea7186b 100644 (file)
@@ -9,10 +9,14 @@
 package org.opendaylight.netconf.sal.connect.netconf;
 
 import com.google.common.base.Preconditions;
-import java.util.concurrent.ExecutorService;
+import com.google.common.util.concurrent.ListeningExecutorService;
+import io.netty.util.concurrent.EventExecutor;
+import org.opendaylight.netconf.sal.connect.api.DeviceActionFactory;
 import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler;
 import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences;
 import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.optional.rev190614.NetconfNodeAugmentedOptional;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
 
 public class NetconfDeviceBuilder {
 
@@ -20,45 +24,71 @@ public class NetconfDeviceBuilder {
     private NetconfDevice.SchemaResourcesDTO schemaResourcesDTO;
     private RemoteDeviceId id;
     private RemoteDeviceHandler<NetconfSessionPreferences> salFacade;
-    private ExecutorService globalProcessingExecutor;
+    private ListeningExecutorService globalProcessingExecutor;
+    private DeviceActionFactory deviceActionFactory;
+    private NetconfNode node;
+    private EventExecutor eventExecutor;
+    private NetconfNodeAugmentedOptional nodeOptional;
 
     public NetconfDeviceBuilder() {
     }
 
-    public NetconfDeviceBuilder setReconnectOnSchemasChange(boolean reconnectOnSchemasChange) {
+    public NetconfDeviceBuilder setReconnectOnSchemasChange(final boolean reconnectOnSchemasChange) {
         this.reconnectOnSchemasChange = reconnectOnSchemasChange;
         return this;
     }
 
-    public NetconfDeviceBuilder setId(RemoteDeviceId id) {
+    public NetconfDeviceBuilder setId(final RemoteDeviceId id) {
         this.id = id;
         return this;
     }
 
-    public NetconfDeviceBuilder setSchemaResourcesDTO(NetconfDevice.SchemaResourcesDTO schemaResourcesDTO) {
+    public NetconfDeviceBuilder setSchemaResourcesDTO(final NetconfDevice.SchemaResourcesDTO schemaResourcesDTO) {
         this.schemaResourcesDTO = schemaResourcesDTO;
         return this;
     }
 
-    public NetconfDeviceBuilder setSalFacade(RemoteDeviceHandler<NetconfSessionPreferences> salFacade) {
+    public NetconfDeviceBuilder setSalFacade(final RemoteDeviceHandler<NetconfSessionPreferences> salFacade) {
         this.salFacade = salFacade;
         return this;
     }
 
-    public NetconfDeviceBuilder setGlobalProcessingExecutor(ExecutorService globalProcessingExecutor) {
+    public NetconfDeviceBuilder setGlobalProcessingExecutor(final ListeningExecutorService globalProcessingExecutor) {
         this.globalProcessingExecutor = globalProcessingExecutor;
         return this;
     }
 
+    public NetconfDeviceBuilder setDeviceActionFactory(final DeviceActionFactory deviceActionFactory) {
+        this.deviceActionFactory = deviceActionFactory;
+        return this;
+    }
+
+    public NetconfDeviceBuilder setNode(final NetconfNode node) {
+        this.node = node;
+        return this;
+    }
+
+    public NetconfDeviceBuilder setEventExecutor(final EventExecutor eventExecutor) {
+        this.eventExecutor = eventExecutor;
+        return this;
+    }
+
+    public NetconfDeviceBuilder setNodeOptional(final NetconfNodeAugmentedOptional nodeOptional) {
+        this.nodeOptional = nodeOptional;
+        return this;
+    }
+
     public NetconfDevice build() {
         validation();
-        return new NetconfDevice(schemaResourcesDTO, id, salFacade, globalProcessingExecutor, reconnectOnSchemasChange);
+        return new NetconfDevice(this.schemaResourcesDTO, this.id, this.salFacade, this.globalProcessingExecutor,
+                this.reconnectOnSchemasChange, this.deviceActionFactory, this.node, this.eventExecutor,
+                this.nodeOptional);
     }
 
     private void validation() {
-        Preconditions.checkNotNull(id, "RemoteDeviceId is not initialized");
-        Preconditions.checkNotNull(salFacade, "RemoteDeviceHandler is not initialized");
-        Preconditions.checkNotNull(globalProcessingExecutor, "ExecutorService is not initialized");
-        Preconditions.checkNotNull(schemaResourcesDTO, "SchemaResourceDTO is not initialized");
+        Preconditions.checkNotNull(this.id, "RemoteDeviceId is not initialized");
+        Preconditions.checkNotNull(this.salFacade, "RemoteDeviceHandler is not initialized");
+        Preconditions.checkNotNull(this.globalProcessingExecutor, "ExecutorService is not initialized");
+        Preconditions.checkNotNull(this.schemaResourcesDTO, "SchemaResourceDTO is not initialized");
     }
 }