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.impl;
11 import com.google.common.base.Preconditions;
12 import io.netty.util.Timer;
14 import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
15 import org.opendaylight.netconf.mapping.api.NetconfOperationServiceFactory;
17 public class NetconfServerSessionNegotiatorFactoryBuilder {
19 private SessionIdProvider idProvider;
20 private NetconfOperationServiceFactory aggregatedOpService;
21 private long connectionTimeoutMillis;
22 private NetconfMonitoringService monitoringService;
23 private Set<String> baseCapabilities;
25 public NetconfServerSessionNegotiatorFactoryBuilder() {
28 public NetconfServerSessionNegotiatorFactoryBuilder setTimer(final Timer timer) {
33 public NetconfServerSessionNegotiatorFactoryBuilder setIdProvider(final SessionIdProvider idProvider) {
34 this.idProvider = idProvider;
38 public NetconfServerSessionNegotiatorFactoryBuilder setAggregatedOpService(
39 final NetconfOperationServiceFactory aggregatedOpService) {
40 this.aggregatedOpService = aggregatedOpService;
44 public NetconfServerSessionNegotiatorFactoryBuilder setConnectionTimeoutMillis(final long connectionTimeoutMillis) {
45 this.connectionTimeoutMillis = connectionTimeoutMillis;
49 public NetconfServerSessionNegotiatorFactoryBuilder setMonitoringService(
50 final NetconfMonitoringService monitoringService) {
51 this.monitoringService = monitoringService;
55 public NetconfServerSessionNegotiatorFactoryBuilder setBaseCapabilities(final Set<String> baseCapabilities) {
56 this.baseCapabilities = baseCapabilities;
61 public NetconfServerSessionNegotiatorFactory build() {
63 return new NetconfServerSessionNegotiatorFactory(timer, aggregatedOpService, idProvider,
64 connectionTimeoutMillis, monitoringService, baseCapabilities);
68 private void validate() {
69 Preconditions.checkNotNull(timer, "timer not initialized");
70 Preconditions.checkNotNull(aggregatedOpService, "NetconfOperationServiceFactory not initialized");
71 Preconditions.checkNotNull(idProvider, "SessionIdProvider not initialized");
72 Preconditions.checkArgument(connectionTimeoutMillis > 0, "connection time out <=0");
73 Preconditions.checkNotNull(monitoringService, "NetconfMonitoringService not initialized");
75 baseCapabilities = (baseCapabilities == null) ? NetconfServerSessionNegotiatorFactory
76 .DEFAULT_BASE_CAPABILITIES : baseCapabilities;