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.test.tool.config;
12 import org.apache.sshd.server.auth.pubkey.PublickeyAuthenticator;
13 import org.opendaylight.netconf.auth.AuthProvider;
14 import org.opendaylight.netconf.test.tool.TesttoolParameters;
15 import org.opendaylight.netconf.test.tool.operations.OperationsCreator;
16 import org.opendaylight.netconf.test.tool.rpchandler.RpcHandler;
18 public class ConfigurationBuilder {
20 private final Configuration configuration;
22 public ConfigurationBuilder() {
23 this.configuration = new Configuration();
26 public ConfigurationBuilder setPublickeyAuthenticator(final PublickeyAuthenticator publickeyAuthenticator) {
27 this.configuration.setPublickeyAuthenticator(publickeyAuthenticator);
31 public ConfigurationBuilder setAuthProvider(final AuthProvider authProvider) {
32 this.configuration.setAuthProvider(authProvider);
36 public ConfigurationBuilder setGetDefaultYangResources(final Set<YangResource> defaultYangResources) {
37 this.configuration.setDefaultYangResources(defaultYangResources);
41 public ConfigurationBuilder setThreadPoolSize(final int threadPoolSize) {
42 this.configuration.setThreadPoolSize(threadPoolSize);
46 public ConfigurationBuilder setGenerateConfigsTimeout(final int generateConfigsTimeout) {
47 this.configuration.setGenerateConfigsTimeout(generateConfigsTimeout);
51 public ConfigurationBuilder setModels(final Set<String> models) {
52 this.configuration.setModels(models);
56 public ConfigurationBuilder setCapabilities(final Set<String> capabilities) {
57 this.configuration.setCapabilities(capabilities);
61 public ConfigurationBuilder setStartingPort(final int startingPort) {
62 this.configuration.setStartingPort(startingPort);
66 public ConfigurationBuilder setDeviceCount(final int deviceCount) {
67 this.configuration.setDeviceCount(deviceCount);
71 public ConfigurationBuilder setSsh(final boolean ssh) {
72 this.configuration.setSsh(ssh);
76 public ConfigurationBuilder setIp(final String ip) {
77 this.configuration.setIp(ip);
81 public ConfigurationBuilder setRpcMapping(final RpcHandler rpcHandler) {
82 this.configuration.setRpcHandler(rpcHandler);
87 public ConfigurationBuilder setMdSal(final boolean mdSal) {
88 this.configuration.setMdSal(mdSal);
93 public ConfigurationBuilder setRpcConfigFile(final File rpcConfigFile) {
94 this.configuration.setRpcConfigFile(rpcConfigFile);
99 public ConfigurationBuilder setInitialConfigXMLFile(final File initialConfigXMLFile) {
100 this.configuration.setInitialConfigXMLFile(initialConfigXMLFile);
105 public ConfigurationBuilder setNotificationFile(final File notificationFile) {
106 this.configuration.setNotificationFile(notificationFile);
110 public ConfigurationBuilder setOperationsCreator(final OperationsCreator operationsCreator) {
111 this.configuration.setOperationsCreator(operationsCreator);
115 public ConfigurationBuilder from(final Configuration template) {
116 this.configuration.setThreadPoolSize(template.getThreadPoolSize());
117 this.configuration.setGenerateConfigsTimeout(template.getGenerateConfigsTimeout());
118 this.configuration.setModels(template.getModels());
119 this.configuration.setCapabilities(template.getCapabilities());
120 this.configuration.setStartingPort(template.getStartingPort());
121 this.configuration.setDeviceCount(template.getDeviceCount());
122 this.configuration.setSsh(template.isSsh());
123 this.configuration.setIp(template.getIp());
124 this.configuration.setRpcHandler(template.getRpcHandler());
125 this.configuration.setOperationsCreator(template.getOperationsCreator());
126 this.configuration.setMdSal(template.isMdSal());
127 this.configuration.setRpcConfigFile(template.getRpcConfigFile());
128 this.configuration.setInitialConfigXMLFile(template.getInitialConfigXMLFile());
129 this.configuration.setNotificationFile(template.getNotificationFile());
130 this.configuration.setSchemasDir(template.getSchemasDir());
131 this.configuration.setDefaultYangResources(template.getDefaultYangResources());
132 this.configuration.setAuthProvider(template.getAuthProvider());
133 this.configuration.setPublickeyAuthenticator(template.getPublickeyAuthenticator());
137 public ConfigurationBuilder from(final TesttoolParameters testtoolParameters) {
138 this.configuration.setGenerateConfigsTimeout(testtoolParameters.generateConfigsTimeout);
139 this.configuration.setStartingPort(testtoolParameters.startingPort);
140 this.configuration.setDeviceCount(testtoolParameters.deviceCount);
141 this.configuration.setSsh(testtoolParameters.ssh);
142 this.configuration.setIp(testtoolParameters.ip);
143 this.configuration.setMdSal(testtoolParameters.mdSal);
144 this.configuration.setRpcConfigFile(testtoolParameters.rpcConfig);
145 this.configuration.setInitialConfigXMLFile(testtoolParameters.initialConfigXMLFile);
146 this.configuration.setNotificationFile(testtoolParameters.notificationFile);
147 this.configuration.setSchemasDir(testtoolParameters.schemasDir);
148 this.configuration.setCapabilities(testtoolParameters.exi ? Configuration.DEFAULT_BASE_CAPABILITIES_EXI
149 : Configuration.DEFAULT_BASE_CAPABILITIES);
153 public Configuration build() {
154 return configuration;