import static java.util.Objects.requireNonNull;
import akka.actor.ActorSystem;
-import io.netty.util.concurrent.EventExecutor;
+import io.netty.util.Timer;
import java.time.Duration;
-import java.util.concurrent.Executor;
-import java.util.concurrent.ScheduledExecutorService;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
-import org.opendaylight.netconf.client.NetconfClientDispatcher;
+import org.opendaylight.netconf.client.NetconfClientFactory;
import org.opendaylight.netconf.client.mdsal.NetconfDevice;
import org.opendaylight.netconf.client.mdsal.api.BaseNetconfSchemas;
+import org.opendaylight.netconf.topology.spi.NetconfTopologySchemaAssembler;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-public class NetconfTopologySetup {
+public final class NetconfTopologySetup {
private final ClusterSingletonServiceProvider clusterSingletonServiceProvider;
private final DataBroker dataBroker;
private final InstanceIdentifier<Node> instanceIdentifier;
private final Node node;
- private final ScheduledExecutorService keepaliveExecutor;
- private final Executor processingExecutor;
+ private final Timer timer;
+ private final NetconfTopologySchemaAssembler schemaAssembler;
private final ActorSystem actorSystem;
- private final EventExecutor eventExecutor;
- private final NetconfClientDispatcher netconfClientDispatcher;
+ private final NetconfClientFactory netconfClientFactory;
private final String topologyId;
private final NetconfDevice.SchemaResourcesDTO schemaResourceDTO;
private final Duration idleTimeout;
private final BaseNetconfSchemas baseSchemas;
- NetconfTopologySetup(final NetconfTopologySetupBuilder builder) {
+ private NetconfTopologySetup(final Builder builder) {
clusterSingletonServiceProvider = builder.getClusterSingletonServiceProvider();
dataBroker = builder.getDataBroker();
instanceIdentifier = builder.getInstanceIdentifier();
node = builder.getNode();
- keepaliveExecutor = builder.getKeepaliveExecutor();
- processingExecutor = builder.getProcessingExecutor();
+ timer = builder.getTimer();
+ schemaAssembler = builder.getSchemaAssembler();
actorSystem = builder.getActorSystem();
- eventExecutor = builder.getEventExecutor();
- netconfClientDispatcher = builder.getNetconfClientDispatcher();
+ netconfClientFactory = builder.getNetconfClientFactory();
topologyId = builder.getTopologyId();
schemaResourceDTO = builder.getSchemaResourceDTO();
idleTimeout = builder.getIdleTimeout();
return node;
}
- public Executor getProcessingExecutor() {
- return processingExecutor;
+ public NetconfTopologySchemaAssembler getSchemaAssembler() {
+ return schemaAssembler;
}
- public ScheduledExecutorService getKeepaliveExecutor() {
- return keepaliveExecutor;
+ public Timer getTimer() {
+ return timer;
}
public ActorSystem getActorSystem() {
return actorSystem;
}
- public EventExecutor getEventExecutor() {
- return eventExecutor;
- }
-
public String getTopologyId() {
return topologyId;
}
- public NetconfClientDispatcher getNetconfClientDispatcher() {
- return netconfClientDispatcher;
+ public NetconfClientFactory getNetconfClientFactory() {
+ return netconfClientFactory;
}
public NetconfDevice.SchemaResourcesDTO getSchemaResourcesDTO() {
return baseSchemas;
}
- public static class NetconfTopologySetupBuilder {
+ public static @NonNull Builder builder() {
+ return new Builder();
+ }
+
+ public static final class Builder {
private ClusterSingletonServiceProvider clusterSingletonServiceProvider;
private DataBroker dataBroker;
private InstanceIdentifier<Node> instanceIdentifier;
private Node node;
- private ScheduledExecutorService keepaliveExecutor;
- private Executor processingExecutor;
+ private Timer timer;
+ private NetconfTopologySchemaAssembler schemaAssembler;
private ActorSystem actorSystem;
- private EventExecutor eventExecutor;
private String topologyId;
- private NetconfClientDispatcher netconfClientDispatcher;
+ private NetconfClientFactory netconfClientFactory;
private NetconfDevice.SchemaResourcesDTO schemaResourceDTO;
private Duration idleTimeout;
private BaseNetconfSchemas baseSchemas;
- public NetconfTopologySetupBuilder() {
-
+ private Builder() {
+ // Hidden on purpose
}
BaseNetconfSchemas getBaseSchemas() {
return requireNonNull(baseSchemas, "BaseSchemas not initialized");
}
- public NetconfTopologySetupBuilder setBaseSchemas(final BaseNetconfSchemas baseSchemas) {
+ public Builder setBaseSchemas(final BaseNetconfSchemas baseSchemas) {
this.baseSchemas = requireNonNull(baseSchemas);
return this;
}
return clusterSingletonServiceProvider;
}
- public NetconfTopologySetupBuilder setClusterSingletonServiceProvider(
+ public Builder setClusterSingletonServiceProvider(
final ClusterSingletonServiceProvider clusterSingletonServiceProvider) {
this.clusterSingletonServiceProvider = clusterSingletonServiceProvider;
return this;
return dataBroker;
}
- public NetconfTopologySetupBuilder setDataBroker(final DataBroker dataBroker) {
+ public Builder setDataBroker(final DataBroker dataBroker) {
this.dataBroker = dataBroker;
return this;
}
return instanceIdentifier;
}
- public NetconfTopologySetupBuilder setInstanceIdentifier(final InstanceIdentifier<Node> instanceIdentifier) {
+ public Builder setInstanceIdentifier(final InstanceIdentifier<Node> instanceIdentifier) {
this.instanceIdentifier = instanceIdentifier;
return this;
}
return node;
}
- public NetconfTopologySetupBuilder setNode(final Node node) {
+ public Builder setNode(final Node node) {
this.node = node;
return this;
}
return new NetconfTopologySetup(this);
}
- ScheduledExecutorService getKeepaliveExecutor() {
- return keepaliveExecutor;
+ Timer getTimer() {
+ return timer;
}
- public NetconfTopologySetupBuilder setKeepaliveExecutor(final ScheduledExecutorService keepaliveExecutor) {
- this.keepaliveExecutor = keepaliveExecutor;
+ public Builder setTimer(final Timer timer) {
+ this.timer = requireNonNull(timer);
return this;
}
- Executor getProcessingExecutor() {
- return processingExecutor;
+
+ NetconfTopologySchemaAssembler getSchemaAssembler() {
+ return schemaAssembler;
}
- public NetconfTopologySetupBuilder setProcessingExecutor(final Executor processingExecutor) {
- this.processingExecutor = processingExecutor;
+ public Builder setSchemaAssembler(final NetconfTopologySchemaAssembler schemaAssembler) {
+ this.schemaAssembler = schemaAssembler;
return this;
}
return actorSystem;
}
- public NetconfTopologySetupBuilder setActorSystem(final ActorSystem actorSystem) {
+ public Builder setActorSystem(final ActorSystem actorSystem) {
this.actorSystem = actorSystem;
return this;
}
- EventExecutor getEventExecutor() {
- return eventExecutor;
- }
-
- public NetconfTopologySetupBuilder setEventExecutor(final EventExecutor eventExecutor) {
- this.eventExecutor = eventExecutor;
- return this;
- }
-
String getTopologyId() {
return topologyId;
}
- public NetconfTopologySetupBuilder setTopologyId(final String topologyId) {
+ public Builder setTopologyId(final String topologyId) {
this.topologyId = topologyId;
return this;
}
- NetconfClientDispatcher getNetconfClientDispatcher() {
- return netconfClientDispatcher;
+ NetconfClientFactory getNetconfClientFactory() {
+ return netconfClientFactory;
}
- public NetconfTopologySetupBuilder setNetconfClientDispatcher(final NetconfClientDispatcher clientDispatcher) {
- netconfClientDispatcher = clientDispatcher;
+ public Builder setNetconfClientFactory(final NetconfClientFactory clientFactory) {
+ netconfClientFactory = clientFactory;
return this;
}
- public NetconfTopologySetupBuilder setSchemaResourceDTO(
+ public Builder setSchemaResourceDTO(
final NetconfDevice.SchemaResourcesDTO schemaResourceDTO) {
this.schemaResourceDTO = schemaResourceDTO;
return this;
return schemaResourceDTO;
}
- public NetconfTopologySetupBuilder setIdleTimeout(final Duration idleTimeout) {
+ public Builder setIdleTimeout(final Duration idleTimeout) {
this.idleTimeout = idleTimeout;
return this;
}
Duration getIdleTimeout() {
return idleTimeout;
}
-
- public static NetconfTopologySetupBuilder create() {
- return new NetconfTopologySetupBuilder();
- }
}
}
\ No newline at end of file