Teach netconf-client abount maximum incoming chunk size
[netconf.git] / netconf / netconf-client / src / main / java / org / opendaylight / netconf / client / conf / NetconfReconnectingClientConfigurationBuilder.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.netconf.client.conf;
9
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;
20
21 public final class NetconfReconnectingClientConfigurationBuilder extends NetconfClientConfigurationBuilder {
22
23     private ReconnectStrategyFactory connectStrategyFactory;
24
25     private NetconfReconnectingClientConfigurationBuilder() {
26     }
27
28     public static NetconfReconnectingClientConfigurationBuilder create() {
29         return new NetconfReconnectingClientConfigurationBuilder();
30     }
31
32     @SuppressWarnings("checkstyle:hiddenField")
33     public NetconfReconnectingClientConfigurationBuilder withConnectStrategyFactory(
34             final ReconnectStrategyFactory connectStrategyFactory) {
35         this.connectStrategyFactory = connectStrategyFactory;
36         return this;
37     }
38
39     @Override
40     public NetconfReconnectingClientConfiguration build() {
41         return new NetconfReconnectingClientConfiguration(getProtocol(), getAddress(), getConnectionTimeoutMillis(),
42                 getAdditionalHeader(), getSessionListener(), getReconnectStrategy(), connectStrategyFactory,
43                 getAuthHandler(), getSslHandlerFactory(), getSshClient(), getOdlHelloCapabilities(),
44                 getMaximumIncomingChunkSize());
45     }
46
47     // Override setter methods to return subtype
48
49     @Override
50     public NetconfReconnectingClientConfigurationBuilder withAddress(final InetSocketAddress address) {
51         return (NetconfReconnectingClientConfigurationBuilder) super.withAddress(address);
52     }
53
54     @Override
55     public NetconfReconnectingClientConfigurationBuilder withConnectionTimeoutMillis(
56             final long connectionTimeoutMillis) {
57         return (NetconfReconnectingClientConfigurationBuilder)
58                 super.withConnectionTimeoutMillis(connectionTimeoutMillis);
59     }
60
61     @Override
62     public NetconfReconnectingClientConfigurationBuilder withAdditionalHeader(
63             final NetconfHelloMessageAdditionalHeader additionalHeader) {
64         return (NetconfReconnectingClientConfigurationBuilder) super.withAdditionalHeader(additionalHeader);
65     }
66
67     @Override
68     public NetconfReconnectingClientConfigurationBuilder withSessionListener(
69             final NetconfClientSessionListener sessionListener) {
70         return (NetconfReconnectingClientConfigurationBuilder) super.withSessionListener(sessionListener);
71     }
72
73     @Override
74     public NetconfReconnectingClientConfigurationBuilder withReconnectStrategy(
75             final ReconnectStrategy reconnectStrategy) {
76         return (NetconfReconnectingClientConfigurationBuilder) super.withReconnectStrategy(reconnectStrategy);
77     }
78
79     @Override
80     public NetconfReconnectingClientConfigurationBuilder withAuthHandler(final AuthenticationHandler authHandler) {
81         return (NetconfReconnectingClientConfigurationBuilder) super.withAuthHandler(authHandler);
82     }
83
84     @Override
85     public NetconfReconnectingClientConfigurationBuilder withProtocol(
86             final NetconfClientConfiguration.NetconfClientProtocol clientProtocol) {
87         return (NetconfReconnectingClientConfigurationBuilder) super.withProtocol(clientProtocol);
88     }
89
90     @Override
91     public NetconfReconnectingClientConfigurationBuilder withSslHandlerFactory(
92             final SslHandlerFactory sslHandlerFactory) {
93         return (NetconfReconnectingClientConfigurationBuilder) super.withSslHandlerFactory(sslHandlerFactory);
94     }
95
96     @Override
97     public NetconfReconnectingClientConfigurationBuilder withSshClient(
98         final NetconfSshClient sshClient) {
99         return (NetconfReconnectingClientConfigurationBuilder) super.withSshClient(sshClient);
100     }
101
102     @Override
103     public NetconfReconnectingClientConfigurationBuilder withOdlHelloCapabilities(
104             final List<Uri> odlHelloCapabilities) {
105         return (NetconfReconnectingClientConfigurationBuilder) super.withOdlHelloCapabilities(odlHelloCapabilities);
106     }
107 }