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.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
22 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
24 public class NetconfTopologySetup {
26 private final ClusterSingletonServiceProvider clusterSingletonServiceProvider;
27 private final RpcProviderRegistry rpcProviderRegistry;
28 private final DataBroker dataBroker;
29 private final InstanceIdentifier<Node> instanceIdentifier;
30 private final Node node;
31 private final BindingAwareBroker bindingAwareBroker;
32 private final ScheduledThreadPool keepaliveExecutor;
33 private final ThreadPool processingExecutor;
34 private final Broker domBroker;
35 private final ActorSystem actorSystem;
36 private final EventExecutor eventExecutor;
37 private final NetconfClientDispatcher netconfClientDispatcher;
38 private final String topologyId;
39 private NetconfTopologySetup(final NetconfTopologySetupBuilder builder) {
40 this.clusterSingletonServiceProvider = builder.getClusterSingletonServiceProvider();
41 this.rpcProviderRegistry = builder.getRpcProviderRegistry();
42 this.dataBroker = builder.getDataBroker();
43 this.instanceIdentifier = builder.getInstanceIdentifier();
44 this.node = builder.getNode();
45 this.bindingAwareBroker = builder.getBindingAwareBroker();
46 this.keepaliveExecutor = builder.getKeepaliveExecutor();
47 this.processingExecutor = builder.getProcessingExecutor();
48 this.domBroker = builder.getDomBroker();
49 this.actorSystem = builder.getActorSystem();
50 this.eventExecutor = builder.getEventExecutor();
51 this.netconfClientDispatcher = builder.getNetconfClientDispatcher();
52 this.topologyId = builder.getTopologyId();
55 public ClusterSingletonServiceProvider getClusterSingletonServiceProvider() {
56 return clusterSingletonServiceProvider;
59 public RpcProviderRegistry getRpcProviderRegistry() {
60 return rpcProviderRegistry;
63 public DataBroker getDataBroker() {
67 public InstanceIdentifier<Node> getInstanceIdentifier() {
68 return instanceIdentifier;
71 public Node getNode() {
75 public BindingAwareBroker getBindingAwareBroker() {
76 return bindingAwareBroker;
79 public ThreadPool getProcessingExecutor() {
80 return processingExecutor;
83 public ScheduledThreadPool getKeepaliveExecutor() {
84 return keepaliveExecutor;
87 public Broker getDomBroker() {
91 public ActorSystem getActorSystem() {
95 public EventExecutor getEventExecutor() {
99 public String getTopologyId() {
103 public NetconfClientDispatcher getNetconfClientDispatcher() {
104 return netconfClientDispatcher;
107 public static class NetconfTopologySetupBuilder {
109 private ClusterSingletonServiceProvider clusterSingletonServiceProvider;
110 private RpcProviderRegistry rpcProviderRegistry;
111 private DataBroker dataBroker;
112 private InstanceIdentifier<Node> instanceIdentifier;
114 private BindingAwareBroker bindingAwareBroker;
115 private ScheduledThreadPool keepaliveExecutor;
116 private ThreadPool processingExecutor;
117 private Broker domBroker;
118 private ActorSystem actorSystem;
119 private EventExecutor eventExecutor;
120 private String topologyId;
121 private NetconfClientDispatcher netconfClientDispatcher;
123 public NetconfTopologySetupBuilder(){
126 private ClusterSingletonServiceProvider getClusterSingletonServiceProvider() {
127 return clusterSingletonServiceProvider;
130 public NetconfTopologySetupBuilder setClusterSingletonServiceProvider(
131 final ClusterSingletonServiceProvider clusterSingletonServiceProvider) {
132 this.clusterSingletonServiceProvider = clusterSingletonServiceProvider;
136 private RpcProviderRegistry getRpcProviderRegistry() {
137 return rpcProviderRegistry;
140 public NetconfTopologySetupBuilder setRpcProviderRegistry(final RpcProviderRegistry rpcProviderRegistry) {
141 this.rpcProviderRegistry = rpcProviderRegistry;
145 private DataBroker getDataBroker() {
149 public NetconfTopologySetupBuilder setDataBroker(final DataBroker dataBroker) {
150 this.dataBroker = dataBroker;
154 private InstanceIdentifier<Node> getInstanceIdentifier() {
155 return instanceIdentifier;
158 public NetconfTopologySetupBuilder setInstanceIdentifier(final InstanceIdentifier<Node> instanceIdentifier) {
159 this.instanceIdentifier = instanceIdentifier;
163 public Node getNode() {
167 public NetconfTopologySetupBuilder setNode(final Node node) {
172 public NetconfTopologySetup build() {
173 return new NetconfTopologySetup(this);
176 private BindingAwareBroker getBindingAwareBroker() {
177 return bindingAwareBroker;
180 public NetconfTopologySetupBuilder setBindingAwareBroker(BindingAwareBroker bindingAwareBroker) {
181 this.bindingAwareBroker = bindingAwareBroker;
185 private ScheduledThreadPool getKeepaliveExecutor() {
186 return keepaliveExecutor;
189 public NetconfTopologySetupBuilder setKeepaliveExecutor(ScheduledThreadPool keepaliveExecutor) {
190 this.keepaliveExecutor = keepaliveExecutor;
194 private ThreadPool getProcessingExecutor() {
195 return processingExecutor;
198 public NetconfTopologySetupBuilder setProcessingExecutor(ThreadPool processingExecutor) {
199 this.processingExecutor = processingExecutor;
203 private Broker getDomBroker() {
207 public NetconfTopologySetupBuilder setDomBroker(Broker domBroker) {
208 this.domBroker = domBroker;
212 private ActorSystem getActorSystem() {
216 public NetconfTopologySetupBuilder setActorSystem(ActorSystem actorSystem) {
217 this.actorSystem = actorSystem;
221 private EventExecutor getEventExecutor() {
222 return eventExecutor;
225 public NetconfTopologySetupBuilder setEventExecutor(EventExecutor eventExecutor) {
226 this.eventExecutor = eventExecutor;
230 private String getTopologyId() {
234 public NetconfTopologySetupBuilder setTopologyId(String topologyId) {
235 this.topologyId = topologyId;
239 private NetconfClientDispatcher getNetconfClientDispatcher() {
240 return netconfClientDispatcher;
243 public NetconfTopologySetupBuilder setNetconfClientDispatcher(NetconfClientDispatcher clientDispatcher) {
244 this.netconfClientDispatcher = clientDispatcher;
248 public static NetconfTopologySetupBuilder create() {
249 return new NetconfTopologySetupBuilder();