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.ReconnectStrategy;
16 import org.opendaylight.netconf.nettyutil.ReconnectStrategyFactory;
17 import org.opendaylight.netconf.nettyutil.handler.ssh.authentication.AuthenticationHandler;
18 import org.opendaylight.netconf.nettyutil.handler.ssh.client.NetconfSshClient;
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
21 public final class NetconfReconnectingClientConfigurationBuilder extends NetconfClientConfigurationBuilder {
23 private ReconnectStrategyFactory connectStrategyFactory;
25 private NetconfReconnectingClientConfigurationBuilder() {
28 public static NetconfReconnectingClientConfigurationBuilder create() {
29 return new NetconfReconnectingClientConfigurationBuilder();
32 @SuppressWarnings("checkstyle:hiddenField")
33 public NetconfReconnectingClientConfigurationBuilder withConnectStrategyFactory(
34 final ReconnectStrategyFactory connectStrategyFactory) {
35 this.connectStrategyFactory = connectStrategyFactory;
40 public NetconfReconnectingClientConfiguration build() {
41 return new NetconfReconnectingClientConfiguration(getProtocol(), getAddress(), getConnectionTimeoutMillis(),
42 getAdditionalHeader(), getSessionListener(), getReconnectStrategy(), connectStrategyFactory,
43 getAuthHandler(), getSslHandlerFactory(), getSshClient(), getOdlHelloCapabilities(),
44 getMaximumIncomingChunkSize(), getName());
47 // Override setter methods to return subtype
50 public NetconfReconnectingClientConfigurationBuilder withAddress(final InetSocketAddress address) {
51 return (NetconfReconnectingClientConfigurationBuilder) super.withAddress(address);
55 public NetconfReconnectingClientConfigurationBuilder withConnectionTimeoutMillis(
56 final long connectionTimeoutMillis) {
57 return (NetconfReconnectingClientConfigurationBuilder)
58 super.withConnectionTimeoutMillis(connectionTimeoutMillis);
62 public NetconfReconnectingClientConfigurationBuilder withAdditionalHeader(
63 final NetconfHelloMessageAdditionalHeader additionalHeader) {
64 return (NetconfReconnectingClientConfigurationBuilder) super.withAdditionalHeader(additionalHeader);
68 public NetconfReconnectingClientConfigurationBuilder withSessionListener(
69 final NetconfClientSessionListener sessionListener) {
70 return (NetconfReconnectingClientConfigurationBuilder) super.withSessionListener(sessionListener);
74 public NetconfReconnectingClientConfigurationBuilder withReconnectStrategy(
75 final ReconnectStrategy reconnectStrategy) {
76 return (NetconfReconnectingClientConfigurationBuilder) super.withReconnectStrategy(reconnectStrategy);
80 public NetconfReconnectingClientConfigurationBuilder withAuthHandler(final AuthenticationHandler authHandler) {
81 return (NetconfReconnectingClientConfigurationBuilder) super.withAuthHandler(authHandler);
85 public NetconfReconnectingClientConfigurationBuilder withProtocol(
86 final NetconfClientConfiguration.NetconfClientProtocol clientProtocol) {
87 return (NetconfReconnectingClientConfigurationBuilder) super.withProtocol(clientProtocol);
91 public NetconfReconnectingClientConfigurationBuilder withSslHandlerFactory(
92 final SslHandlerFactory sslHandlerFactory) {
93 return (NetconfReconnectingClientConfigurationBuilder) super.withSslHandlerFactory(sslHandlerFactory);
97 public NetconfReconnectingClientConfigurationBuilder withSshClient(
98 final NetconfSshClient sshClient) {
99 return (NetconfReconnectingClientConfigurationBuilder) super.withSshClient(sshClient);
103 public NetconfReconnectingClientConfigurationBuilder withName(final String name) {
104 return (NetconfReconnectingClientConfigurationBuilder) super.withName(name);
108 public NetconfReconnectingClientConfigurationBuilder withOdlHelloCapabilities(
109 final List<Uri> odlHelloCapabilities) {
110 return (NetconfReconnectingClientConfigurationBuilder) super.withOdlHelloCapabilities(odlHelloCapabilities);