2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.netconf.topology.singleton.impl.utils;
11 import akka.actor.ActorSystem;
12 import io.netty.util.concurrent.EventExecutor;
13 import org.opendaylight.controller.config.threadpool.ScheduledThreadPool;
14 import org.opendaylight.controller.config.threadpool.ThreadPool;
15 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
16 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
17 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
18 import org.opendaylight.controller.sal.core.api.Broker;
19 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
20 import org.opendaylight.netconf.client.NetconfClientDispatcher;
21 import org.opendaylight.netconf.sal.connect.netconf.NetconfDevice;
22 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
23 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
25 public class NetconfTopologySetup {
27 private final ClusterSingletonServiceProvider clusterSingletonServiceProvider;
28 private final RpcProviderRegistry rpcProviderRegistry;
29 private final DataBroker dataBroker;
30 private final InstanceIdentifier<Node> instanceIdentifier;
31 private final Node node;
32 private final BindingAwareBroker bindingAwareBroker;
33 private final ScheduledThreadPool keepaliveExecutor;
34 private final ThreadPool processingExecutor;
35 private final Broker domBroker;
36 private final ActorSystem actorSystem;
37 private final EventExecutor eventExecutor;
38 private final NetconfClientDispatcher netconfClientDispatcher;
39 private final String topologyId;
40 private final NetconfDevice.SchemaResourcesDTO schemaResourceDTO;
42 private NetconfTopologySetup(final NetconfTopologySetupBuilder builder) {
43 this.clusterSingletonServiceProvider = builder.getClusterSingletonServiceProvider();
44 this.rpcProviderRegistry = builder.getRpcProviderRegistry();
45 this.dataBroker = builder.getDataBroker();
46 this.instanceIdentifier = builder.getInstanceIdentifier();
47 this.node = builder.getNode();
48 this.bindingAwareBroker = builder.getBindingAwareBroker();
49 this.keepaliveExecutor = builder.getKeepaliveExecutor();
50 this.processingExecutor = builder.getProcessingExecutor();
51 this.domBroker = builder.getDomBroker();
52 this.actorSystem = builder.getActorSystem();
53 this.eventExecutor = builder.getEventExecutor();
54 this.netconfClientDispatcher = builder.getNetconfClientDispatcher();
55 this.topologyId = builder.getTopologyId();
56 this.schemaResourceDTO = builder.getSchemaResourceDTO();
59 public ClusterSingletonServiceProvider getClusterSingletonServiceProvider() {
60 return clusterSingletonServiceProvider;
63 public RpcProviderRegistry getRpcProviderRegistry() {
64 return rpcProviderRegistry;
67 public DataBroker getDataBroker() {
71 public InstanceIdentifier<Node> getInstanceIdentifier() {
72 return instanceIdentifier;
75 public Node getNode() {
79 public BindingAwareBroker getBindingAwareBroker() {
80 return bindingAwareBroker;
83 public ThreadPool getProcessingExecutor() {
84 return processingExecutor;
87 public ScheduledThreadPool getKeepaliveExecutor() {
88 return keepaliveExecutor;
91 public Broker getDomBroker() {
95 public ActorSystem getActorSystem() {
99 public EventExecutor getEventExecutor() {
100 return eventExecutor;
103 public String getTopologyId() {
107 public NetconfClientDispatcher getNetconfClientDispatcher() {
108 return netconfClientDispatcher;
111 public NetconfDevice.SchemaResourcesDTO getSchemaResourcesDTO() {
112 return schemaResourceDTO;
115 public static class NetconfTopologySetupBuilder {
117 private ClusterSingletonServiceProvider clusterSingletonServiceProvider;
118 private RpcProviderRegistry rpcProviderRegistry;
119 private DataBroker dataBroker;
120 private InstanceIdentifier<Node> instanceIdentifier;
122 private BindingAwareBroker bindingAwareBroker;
123 private ScheduledThreadPool keepaliveExecutor;
124 private ThreadPool processingExecutor;
125 private Broker domBroker;
126 private ActorSystem actorSystem;
127 private EventExecutor eventExecutor;
128 private String topologyId;
129 private NetconfClientDispatcher netconfClientDispatcher;
130 private NetconfDevice.SchemaResourcesDTO schemaResourceDTO;
132 public NetconfTopologySetupBuilder(){
135 private ClusterSingletonServiceProvider getClusterSingletonServiceProvider() {
136 return clusterSingletonServiceProvider;
139 public NetconfTopologySetupBuilder setClusterSingletonServiceProvider(
140 final ClusterSingletonServiceProvider clusterSingletonServiceProvider) {
141 this.clusterSingletonServiceProvider = clusterSingletonServiceProvider;
145 private RpcProviderRegistry getRpcProviderRegistry() {
146 return rpcProviderRegistry;
149 public NetconfTopologySetupBuilder setRpcProviderRegistry(final RpcProviderRegistry rpcProviderRegistry) {
150 this.rpcProviderRegistry = rpcProviderRegistry;
154 private DataBroker getDataBroker() {
158 public NetconfTopologySetupBuilder setDataBroker(final DataBroker dataBroker) {
159 this.dataBroker = dataBroker;
163 private InstanceIdentifier<Node> getInstanceIdentifier() {
164 return instanceIdentifier;
167 public NetconfTopologySetupBuilder setInstanceIdentifier(final InstanceIdentifier<Node> instanceIdentifier) {
168 this.instanceIdentifier = instanceIdentifier;
172 public Node getNode() {
176 public NetconfTopologySetupBuilder setNode(final Node node) {
181 public NetconfTopologySetup build() {
182 return new NetconfTopologySetup(this);
185 private BindingAwareBroker getBindingAwareBroker() {
186 return bindingAwareBroker;
189 public NetconfTopologySetupBuilder setBindingAwareBroker(BindingAwareBroker bindingAwareBroker) {
190 this.bindingAwareBroker = bindingAwareBroker;
194 private ScheduledThreadPool getKeepaliveExecutor() {
195 return keepaliveExecutor;
198 public NetconfTopologySetupBuilder setKeepaliveExecutor(ScheduledThreadPool keepaliveExecutor) {
199 this.keepaliveExecutor = keepaliveExecutor;
203 private ThreadPool getProcessingExecutor() {
204 return processingExecutor;
207 public NetconfTopologySetupBuilder setProcessingExecutor(ThreadPool processingExecutor) {
208 this.processingExecutor = processingExecutor;
212 private Broker getDomBroker() {
216 public NetconfTopologySetupBuilder setDomBroker(Broker domBroker) {
217 this.domBroker = domBroker;
221 private ActorSystem getActorSystem() {
225 public NetconfTopologySetupBuilder setActorSystem(ActorSystem actorSystem) {
226 this.actorSystem = actorSystem;
230 private EventExecutor getEventExecutor() {
231 return eventExecutor;
234 public NetconfTopologySetupBuilder setEventExecutor(EventExecutor eventExecutor) {
235 this.eventExecutor = eventExecutor;
239 private String getTopologyId() {
243 public NetconfTopologySetupBuilder setTopologyId(String topologyId) {
244 this.topologyId = topologyId;
248 private NetconfClientDispatcher getNetconfClientDispatcher() {
249 return netconfClientDispatcher;
252 public NetconfTopologySetupBuilder setNetconfClientDispatcher(NetconfClientDispatcher clientDispatcher) {
253 this.netconfClientDispatcher = clientDispatcher;
257 public NetconfTopologySetupBuilder setSchemaResourceDTO(
258 final NetconfDevice.SchemaResourcesDTO schemaResourceDTO) {
259 this.schemaResourceDTO = schemaResourceDTO;
263 private NetconfDevice.SchemaResourcesDTO getSchemaResourceDTO() {
264 return schemaResourceDTO;
267 public static NetconfTopologySetupBuilder create() {
268 return new NetconfTopologySetupBuilder();