* 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() {
}
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;
}
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");
}
}