Adjust to yangtools-2.0.0/odlparent-3.0.0 changes
[netconf.git] / netconf / netconf-client / src / main / java / org / opendaylight / netconf / client / conf / NetconfClientConfigurationBuilder.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 org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
12 import org.opendaylight.netconf.client.NetconfClientSessionListener;
13 import org.opendaylight.netconf.nettyutil.handler.ssh.authentication.AuthenticationHandler;
14 import org.opendaylight.protocol.framework.ReconnectStrategy;
15
16 public class NetconfClientConfigurationBuilder {
17
18     public static final int DEFAULT_CONNECTION_TIMEOUT_MILLIS = 5000;
19     public static final NetconfClientConfiguration.NetconfClientProtocol DEFAULT_CLIENT_PROTOCOL =
20             NetconfClientConfiguration.NetconfClientProtocol.TCP;
21
22     private InetSocketAddress address;
23     private long connectionTimeoutMillis = DEFAULT_CONNECTION_TIMEOUT_MILLIS;
24     private NetconfHelloMessageAdditionalHeader additionalHeader;
25     private NetconfClientSessionListener sessionListener;
26     private ReconnectStrategy reconnectStrategy;
27     private AuthenticationHandler authHandler;
28     private NetconfClientConfiguration.NetconfClientProtocol clientProtocol = DEFAULT_CLIENT_PROTOCOL;
29
30     protected NetconfClientConfigurationBuilder() {
31     }
32
33     public static NetconfClientConfigurationBuilder create() {
34         return new NetconfClientConfigurationBuilder();
35     }
36
37     @SuppressWarnings("checkstyle:hiddenField")
38     public NetconfClientConfigurationBuilder withAddress(final InetSocketAddress address) {
39         this.address = address;
40         return this;
41     }
42
43     @SuppressWarnings("checkstyle:hiddenField")
44     public NetconfClientConfigurationBuilder withConnectionTimeoutMillis(final long connectionTimeoutMillis) {
45         this.connectionTimeoutMillis = connectionTimeoutMillis;
46         return this;
47     }
48
49     @SuppressWarnings("checkstyle:hiddenField")
50     public NetconfClientConfigurationBuilder withProtocol(
51             final NetconfClientConfiguration.NetconfClientProtocol clientProtocol) {
52         this.clientProtocol = clientProtocol;
53         return this;
54     }
55
56     @SuppressWarnings("checkstyle:hiddenField")
57     public NetconfClientConfigurationBuilder withAdditionalHeader(
58             final NetconfHelloMessageAdditionalHeader additionalHeader) {
59         this.additionalHeader = additionalHeader;
60         return this;
61     }
62
63     @SuppressWarnings("checkstyle:hiddenField")
64     public NetconfClientConfigurationBuilder withSessionListener(final NetconfClientSessionListener sessionListener) {
65         this.sessionListener = sessionListener;
66         return this;
67     }
68
69     @SuppressWarnings("checkstyle:hiddenField")
70     public NetconfClientConfigurationBuilder withReconnectStrategy(final ReconnectStrategy reconnectStrategy) {
71         this.reconnectStrategy = reconnectStrategy;
72         return this;
73     }
74
75     @SuppressWarnings("checkstyle:hiddenField")
76     public NetconfClientConfigurationBuilder withAuthHandler(final AuthenticationHandler authHandler) {
77         this.authHandler = authHandler;
78         return this;
79     }
80
81     final InetSocketAddress getAddress() {
82         return address;
83     }
84
85     final long getConnectionTimeoutMillis() {
86         return connectionTimeoutMillis;
87     }
88
89     final NetconfHelloMessageAdditionalHeader getAdditionalHeader() {
90         return additionalHeader;
91     }
92
93     final NetconfClientSessionListener getSessionListener() {
94         return sessionListener;
95     }
96
97     final ReconnectStrategy getReconnectStrategy() {
98         return reconnectStrategy;
99     }
100
101     final AuthenticationHandler getAuthHandler() {
102         return authHandler;
103     }
104
105     final NetconfClientConfiguration.NetconfClientProtocol getProtocol() {
106         return clientProtocol;
107     }
108
109     public NetconfClientConfiguration build() {
110         return new NetconfClientConfiguration(clientProtocol, address, connectionTimeoutMillis, additionalHeader,
111                 sessionListener, reconnectStrategy, authHandler);
112     }
113 }