64fcc48b251b29efcff9fb415cc73a86eee05d34
[controller.git] / opendaylight / netconf / netconf-client / src / main / java / org / opendaylight / controller / netconf / client / conf / NetconfReconnectingClientConfiguration.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.controller.netconf.client.conf;
9
10 import com.google.common.base.Objects;
11 import com.google.common.base.Preconditions;
12 import org.opendaylight.controller.netconf.client.NetconfClientSessionListener;
13 import org.opendaylight.controller.netconf.util.handler.ssh.authentication.AuthenticationHandler;
14 import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
15 import org.opendaylight.protocol.framework.ReconnectStrategy;
16 import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
17
18 import java.net.InetSocketAddress;
19
20 public final class NetconfReconnectingClientConfiguration extends NetconfClientConfiguration {
21
22     private final ReconnectStrategyFactory connectStrategyFactory;
23
24     NetconfReconnectingClientConfiguration(final NetconfClientProtocol clientProtocol, final InetSocketAddress address,
25             final Long connectionTimeoutMillis, final NetconfHelloMessageAdditionalHeader additionalHeader,
26             final NetconfClientSessionListener sessionListener, final ReconnectStrategy reconnectStrategy,
27             final ReconnectStrategyFactory connectStrategyFactory, final AuthenticationHandler authHandler) {
28         super(clientProtocol, address, connectionTimeoutMillis, additionalHeader, sessionListener, reconnectStrategy,
29                 authHandler);
30         this.connectStrategyFactory = connectStrategyFactory;
31         validateReconnectConfiguration();
32     }
33
34     public ReconnectStrategyFactory getConnectStrategyFactory() {
35         return connectStrategyFactory;
36     }
37
38     private void validateReconnectConfiguration() {
39         Preconditions.checkNotNull(connectStrategyFactory);
40     }
41
42     @Override
43     protected Objects.ToStringHelper buildToStringHelper() {
44         return super.buildToStringHelper().add("connectStrategyFactory", connectStrategyFactory);
45     }
46 }