Move RemoteDeviceId
[netconf.git] / netconf / sal-netconf-connector / src / main / java / org / opendaylight / netconf / sal / connect / netconf / NetconfDeviceBuilder.java
index 50a1e9ade98a7ae9a7c74861f25fd636692b3fff..c50ee96e4999a4c15b649a1e9e1fbdea86c74736 100644 (file)
@@ -5,24 +5,25 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.netconf.sal.connect.netconf;
 
-import com.google.common.base.Preconditions;
+import static java.util.Objects.requireNonNull;
+
 import com.google.common.util.concurrent.ListeningExecutorService;
 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.netconf.sal.connect.api.RemoteDeviceId;
+import org.opendaylight.netconf.sal.connect.netconf.NetconfDevice.SchemaResourcesDTO;
+import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.BaseNetconfSchemas;
 
 public class NetconfDeviceBuilder {
-
     private boolean reconnectOnSchemasChange;
-    private NetconfDevice.SchemaResourcesDTO schemaResourcesDTO;
+    private SchemaResourcesDTO schemaResourcesDTO;
     private RemoteDeviceId id;
-    private RemoteDeviceHandler<NetconfSessionPreferences> salFacade;
+    private RemoteDeviceHandler salFacade;
     private ListeningExecutorService globalProcessingExecutor;
     private DeviceActionFactory deviceActionFactory;
+    private BaseNetconfSchemas baseSchemas;
 
     public NetconfDeviceBuilder() {
     }
@@ -37,12 +38,12 @@ public class NetconfDeviceBuilder {
         return this;
     }
 
-    public NetconfDeviceBuilder setSchemaResourcesDTO(final NetconfDevice.SchemaResourcesDTO schemaResourcesDTO) {
+    public NetconfDeviceBuilder setSchemaResourcesDTO(final SchemaResourcesDTO schemaResourcesDTO) {
         this.schemaResourcesDTO = schemaResourcesDTO;
         return this;
     }
 
-    public NetconfDeviceBuilder setSalFacade(final RemoteDeviceHandler<NetconfSessionPreferences> salFacade) {
+    public NetconfDeviceBuilder setSalFacade(final RemoteDeviceHandler salFacade) {
         this.salFacade = salFacade;
         return this;
     }
@@ -57,16 +58,22 @@ public class NetconfDeviceBuilder {
         return this;
     }
 
+    public NetconfDeviceBuilder setBaseSchemas(final BaseNetconfSchemas baseSchemas) {
+        this.baseSchemas = requireNonNull(baseSchemas);
+        return this;
+    }
+
     public NetconfDevice build() {
         validation();
-        return new NetconfDevice(this.schemaResourcesDTO, this.id, this.salFacade, this.globalProcessingExecutor,
-                this.reconnectOnSchemasChange, this.deviceActionFactory);
+        return new NetconfDevice(schemaResourcesDTO, baseSchemas, id, salFacade,
+            globalProcessingExecutor, reconnectOnSchemasChange, deviceActionFactory);
     }
 
     private void validation() {
-        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");
+        requireNonNull(baseSchemas, "BaseSchemas is not initialized");
+        requireNonNull(id, "RemoteDeviceId is not initialized");
+        requireNonNull(salFacade, "RemoteDeviceHandler is not initialized");
+        requireNonNull(globalProcessingExecutor, "ExecutorService is not initialized");
+        requireNonNull(schemaResourcesDTO, "SchemaResourceDTO is not initialized");
     }
 }