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());
46 // Override setter methods to return subtype
49 public NetconfReconnectingClientConfigurationBuilder withAddress(final InetSocketAddress address) {
50 return (NetconfReconnectingClientConfigurationBuilder) super.withAddress(address);
54 public NetconfReconnectingClientConfigurationBuilder withConnectionTimeoutMillis(
55 final long connectionTimeoutMillis) {
56 return (NetconfReconnectingClientConfigurationBuilder)
57 super.withConnectionTimeoutMillis(connectionTimeoutMillis);
61 public NetconfReconnectingClientConfigurationBuilder withAdditionalHeader(
62 final NetconfHelloMessageAdditionalHeader additionalHeader) {
63 return (NetconfReconnectingClientConfigurationBuilder) super.withAdditionalHeader(additionalHeader);
67 public NetconfReconnectingClientConfigurationBuilder withSessionListener(
68 final NetconfClientSessionListener sessionListener) {
69 return (NetconfReconnectingClientConfigurationBuilder) super.withSessionListener(sessionListener);
73 public NetconfReconnectingClientConfigurationBuilder withReconnectStrategy(
74 final ReconnectStrategy reconnectStrategy) {
75 return (NetconfReconnectingClientConfigurationBuilder) super.withReconnectStrategy(reconnectStrategy);
79 public NetconfReconnectingClientConfigurationBuilder withAuthHandler(final AuthenticationHandler authHandler) {
80 return (NetconfReconnectingClientConfigurationBuilder) super.withAuthHandler(authHandler);
84 public NetconfReconnectingClientConfigurationBuilder withProtocol(
85 NetconfClientConfiguration.NetconfClientProtocol clientProtocol) {
86 return (NetconfReconnectingClientConfigurationBuilder) super.withProtocol(clientProtocol);
90 public NetconfReconnectingClientConfigurationBuilder withSslHandlerFactory(
91 final SslHandlerFactory sslHandlerFactory) {
92 return (NetconfReconnectingClientConfigurationBuilder) super.withSslHandlerFactory(sslHandlerFactory);
96 public NetconfReconnectingClientConfigurationBuilder withSshClient(
97 final NetconfSshClient sshClient) {
98 return (NetconfReconnectingClientConfigurationBuilder) super.withSshClient(sshClient);
102 public NetconfReconnectingClientConfigurationBuilder withOdlHelloCapabilities(List<Uri> odlHelloCapabilities) {
103 return (NetconfReconnectingClientConfigurationBuilder) super.withOdlHelloCapabilities(odlHelloCapabilities);