2 * Copyright (c) 2017 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
8 package org.opendaylight.netconf.topology.singleton.impl.utils;
10 import static java.util.Objects.requireNonNull;
12 import akka.actor.ActorSystem;
13 import java.time.Duration;
14 import org.eclipse.jdt.annotation.NonNull;
15 import org.opendaylight.mdsal.binding.api.DataBroker;
16 import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider;
17 import org.opendaylight.netconf.client.NetconfClientFactory;
18 import org.opendaylight.netconf.client.mdsal.NetconfDevice;
19 import org.opendaylight.netconf.client.mdsal.api.BaseNetconfSchemas;
20 import org.opendaylight.netconf.common.NetconfTimer;
21 import org.opendaylight.netconf.topology.spi.NetconfTopologySchemaAssembler;
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 final class NetconfTopologySetup {
26 private final ClusterSingletonServiceProvider clusterSingletonServiceProvider;
27 private final DataBroker dataBroker;
28 private final InstanceIdentifier<Node> instanceIdentifier;
29 private final Node node;
30 private final NetconfTimer timer;
31 private final NetconfTopologySchemaAssembler schemaAssembler;
32 private final ActorSystem actorSystem;
33 private final NetconfClientFactory netconfClientFactory;
34 private final String topologyId;
35 private final NetconfDevice.SchemaResourcesDTO schemaResourceDTO;
36 private final Duration idleTimeout;
37 private final BaseNetconfSchemas baseSchemas;
39 private NetconfTopologySetup(final Builder builder) {
40 clusterSingletonServiceProvider = builder.getClusterSingletonServiceProvider();
41 dataBroker = builder.getDataBroker();
42 instanceIdentifier = builder.getInstanceIdentifier();
43 node = builder.getNode();
44 timer = builder.getTimer();
45 schemaAssembler = builder.getSchemaAssembler();
46 actorSystem = builder.getActorSystem();
47 netconfClientFactory = builder.getNetconfClientFactory();
48 topologyId = builder.getTopologyId();
49 schemaResourceDTO = builder.getSchemaResourceDTO();
50 idleTimeout = builder.getIdleTimeout();
51 baseSchemas = builder.getBaseSchemas();
54 public ClusterSingletonServiceProvider getClusterSingletonServiceProvider() {
55 return clusterSingletonServiceProvider;
58 public DataBroker getDataBroker() {
62 public InstanceIdentifier<Node> getInstanceIdentifier() {
63 return instanceIdentifier;
66 public Node getNode() {
70 public NetconfTopologySchemaAssembler getSchemaAssembler() {
71 return schemaAssembler;
74 public NetconfTimer getTimer() {
78 public ActorSystem getActorSystem() {
82 public String getTopologyId() {
86 public NetconfClientFactory getNetconfClientFactory() {
87 return netconfClientFactory;
90 public NetconfDevice.SchemaResourcesDTO getSchemaResourcesDTO() {
91 return schemaResourceDTO;
94 public Duration getIdleTimeout() {
98 public BaseNetconfSchemas getBaseSchemas() {
102 public static @NonNull Builder builder() {
103 return new Builder();
106 public static final class Builder {
107 private ClusterSingletonServiceProvider clusterSingletonServiceProvider;
108 private DataBroker dataBroker;
109 private InstanceIdentifier<Node> instanceIdentifier;
111 private NetconfTimer timer;
112 private NetconfTopologySchemaAssembler schemaAssembler;
113 private ActorSystem actorSystem;
114 private String topologyId;
115 private NetconfClientFactory netconfClientFactory;
116 private NetconfDevice.SchemaResourcesDTO schemaResourceDTO;
117 private Duration idleTimeout;
118 private BaseNetconfSchemas baseSchemas;
124 BaseNetconfSchemas getBaseSchemas() {
125 return requireNonNull(baseSchemas, "BaseSchemas not initialized");
128 public Builder setBaseSchemas(final BaseNetconfSchemas baseSchemas) {
129 this.baseSchemas = requireNonNull(baseSchemas);
133 ClusterSingletonServiceProvider getClusterSingletonServiceProvider() {
134 return clusterSingletonServiceProvider;
137 public Builder setClusterSingletonServiceProvider(
138 final ClusterSingletonServiceProvider clusterSingletonServiceProvider) {
139 this.clusterSingletonServiceProvider = clusterSingletonServiceProvider;
143 DataBroker getDataBroker() {
147 public Builder setDataBroker(final DataBroker dataBroker) {
148 this.dataBroker = dataBroker;
152 InstanceIdentifier<Node> getInstanceIdentifier() {
153 return instanceIdentifier;
156 public Builder setInstanceIdentifier(final InstanceIdentifier<Node> instanceIdentifier) {
157 this.instanceIdentifier = instanceIdentifier;
161 public Node getNode() {
165 public Builder setNode(final Node node) {
170 public NetconfTopologySetup build() {
171 return new NetconfTopologySetup(this);
174 NetconfTimer getTimer() {
178 public Builder setTimer(final NetconfTimer timer) {
179 this.timer = requireNonNull(timer);
184 NetconfTopologySchemaAssembler getSchemaAssembler() {
185 return schemaAssembler;
188 public Builder setSchemaAssembler(final NetconfTopologySchemaAssembler schemaAssembler) {
189 this.schemaAssembler = schemaAssembler;
193 ActorSystem getActorSystem() {
197 public Builder setActorSystem(final ActorSystem actorSystem) {
198 this.actorSystem = actorSystem;
202 String getTopologyId() {
206 public Builder setTopologyId(final String topologyId) {
207 this.topologyId = topologyId;
211 NetconfClientFactory getNetconfClientFactory() {
212 return netconfClientFactory;
215 public Builder setNetconfClientFactory(final NetconfClientFactory clientFactory) {
216 netconfClientFactory = clientFactory;
220 public Builder setSchemaResourceDTO(
221 final NetconfDevice.SchemaResourcesDTO schemaResourceDTO) {
222 this.schemaResourceDTO = schemaResourceDTO;
226 NetconfDevice.SchemaResourcesDTO getSchemaResourceDTO() {
227 return schemaResourceDTO;
230 public Builder setIdleTimeout(final Duration idleTimeout) {
231 this.idleTimeout = idleTimeout;
235 Duration getIdleTimeout() {