2 * Copyright (c) 2014 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.client.conf;
10 import java.net.InetSocketAddress;
11 import java.util.List;
12 import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
13 import org.opendaylight.netconf.client.NetconfClientSessionListener;
14 import org.opendaylight.netconf.client.SslHandlerFactory;
15 import org.opendaylight.netconf.nettyutil.handler.ssh.authentication.AuthenticationHandler;
16 import org.opendaylight.protocol.framework.ReconnectStrategy;
17 import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
18 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
20 public final class NetconfReconnectingClientConfigurationBuilder extends NetconfClientConfigurationBuilder {
22 private ReconnectStrategyFactory connectStrategyFactory;
24 private NetconfReconnectingClientConfigurationBuilder() {
27 public static NetconfReconnectingClientConfigurationBuilder create() {
28 return new NetconfReconnectingClientConfigurationBuilder();
31 @SuppressWarnings("checkstyle:hiddenField")
32 public NetconfReconnectingClientConfigurationBuilder withConnectStrategyFactory(
33 final ReconnectStrategyFactory connectStrategyFactory) {
34 this.connectStrategyFactory = connectStrategyFactory;
39 public NetconfReconnectingClientConfiguration build() {
40 return new NetconfReconnectingClientConfiguration(getProtocol(), getAddress(), getConnectionTimeoutMillis(),
41 getAdditionalHeader(), getSessionListener(), getReconnectStrategy(), connectStrategyFactory,
42 getAuthHandler(), getSslHandlerFactory(), getOdlHelloCapabilities());
45 // Override setter methods to return subtype
48 public NetconfReconnectingClientConfigurationBuilder withAddress(final InetSocketAddress address) {
49 return (NetconfReconnectingClientConfigurationBuilder) super.withAddress(address);
53 public NetconfReconnectingClientConfigurationBuilder withConnectionTimeoutMillis(
54 final long connectionTimeoutMillis) {
55 return (NetconfReconnectingClientConfigurationBuilder)
56 super.withConnectionTimeoutMillis(connectionTimeoutMillis);
60 public NetconfReconnectingClientConfigurationBuilder withAdditionalHeader(
61 final NetconfHelloMessageAdditionalHeader additionalHeader) {
62 return (NetconfReconnectingClientConfigurationBuilder) super.withAdditionalHeader(additionalHeader);
66 public NetconfReconnectingClientConfigurationBuilder withSessionListener(
67 final NetconfClientSessionListener sessionListener) {
68 return (NetconfReconnectingClientConfigurationBuilder) super.withSessionListener(sessionListener);
72 public NetconfReconnectingClientConfigurationBuilder withReconnectStrategy(
73 final ReconnectStrategy reconnectStrategy) {
74 return (NetconfReconnectingClientConfigurationBuilder) super.withReconnectStrategy(reconnectStrategy);
78 public NetconfReconnectingClientConfigurationBuilder withAuthHandler(final AuthenticationHandler authHandler) {
79 return (NetconfReconnectingClientConfigurationBuilder) super.withAuthHandler(authHandler);
83 public NetconfReconnectingClientConfigurationBuilder withProtocol(
84 NetconfClientConfiguration.NetconfClientProtocol clientProtocol) {
85 return (NetconfReconnectingClientConfigurationBuilder) super.withProtocol(clientProtocol);
89 public NetconfReconnectingClientConfigurationBuilder withSslHandlerFactory(
90 final SslHandlerFactory sslHandlerFactory) {
91 return (NetconfReconnectingClientConfigurationBuilder) super.withSslHandlerFactory(sslHandlerFactory);
95 public NetconfReconnectingClientConfigurationBuilder withOdlHelloCapabilities(List<Uri> odlHelloCapabilities) {
96 return (NetconfReconnectingClientConfigurationBuilder) super.withOdlHelloCapabilities(odlHelloCapabilities);