SchemaSourceCache init using YangModuleInfo
[netconf.git] / netconf / tools / netconf-testtool / src / main / java / org / opendaylight / netconf / test / tool / config / ConfigurationBuilder.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.test.tool.config;
9
10 import java.io.File;
11 import java.util.Set;
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;
17 import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
18
19 public class ConfigurationBuilder {
20
21     private final Configuration configuration;
22
23     public ConfigurationBuilder() {
24         this.configuration = new Configuration();
25     }
26
27     public ConfigurationBuilder setPublickeyAuthenticator(final PublickeyAuthenticator publickeyAuthenticator) {
28         this.configuration.setPublickeyAuthenticator(publickeyAuthenticator);
29         return this;
30     }
31
32     public ConfigurationBuilder setAuthProvider(final AuthProvider authProvider) {
33         this.configuration.setAuthProvider(authProvider);
34         return this;
35     }
36
37     public ConfigurationBuilder setGetDefaultYangResources(final Set<YangResource> defaultYangResources) {
38         this.configuration.setDefaultYangResources(defaultYangResources);
39         return this;
40     }
41
42     public ConfigurationBuilder setThreadPoolSize(final int threadPoolSize) {
43         this.configuration.setThreadPoolSize(threadPoolSize);
44         return this;
45     }
46
47     public ConfigurationBuilder setGenerateConfigsTimeout(final int generateConfigsTimeout) {
48         this.configuration.setGenerateConfigsTimeout(generateConfigsTimeout);
49         return this;
50     }
51
52     public ConfigurationBuilder setModels(final Set<YangModuleInfo> models) {
53         this.configuration.setModels(models);
54         return this;
55     }
56
57     public ConfigurationBuilder setCapabilities(final Set<String> capabilities) {
58         this.configuration.setCapabilities(capabilities);
59         return this;
60     }
61
62     public ConfigurationBuilder setStartingPort(final int startingPort) {
63         this.configuration.setStartingPort(startingPort);
64         return this;
65     }
66
67     public ConfigurationBuilder setDeviceCount(final int deviceCount) {
68         this.configuration.setDeviceCount(deviceCount);
69         return this;
70     }
71
72     public ConfigurationBuilder setSsh(final boolean ssh) {
73         this.configuration.setSsh(ssh);
74         return this;
75     }
76
77     public ConfigurationBuilder setIp(final String ip) {
78         this.configuration.setIp(ip);
79         return this;
80     }
81
82     public ConfigurationBuilder setRpcMapping(final RpcHandler rpcHandler) {
83         this.configuration.setRpcHandler(rpcHandler);
84         return this;
85     }
86
87     @Deprecated
88     public ConfigurationBuilder setMdSal(final boolean mdSal) {
89         this.configuration.setMdSal(mdSal);
90         return this;
91     }
92
93     @Deprecated
94     public ConfigurationBuilder setRpcConfigFile(final File rpcConfigFile) {
95         this.configuration.setRpcConfigFile(rpcConfigFile);
96         return this;
97     }
98
99     @Deprecated
100     public ConfigurationBuilder setInitialConfigXMLFile(final File initialConfigXMLFile) {
101         this.configuration.setInitialConfigXMLFile(initialConfigXMLFile);
102         return this;
103     }
104
105     @Deprecated
106     public ConfigurationBuilder setNotificationFile(final File notificationFile) {
107         this.configuration.setNotificationFile(notificationFile);
108         return this;
109     }
110
111     public ConfigurationBuilder setOperationsCreator(final OperationsCreator operationsCreator) {
112         this.configuration.setOperationsCreator(operationsCreator);
113         return this;
114     }
115
116     public ConfigurationBuilder from(final Configuration template) {
117         this.configuration.setThreadPoolSize(template.getThreadPoolSize());
118         this.configuration.setGenerateConfigsTimeout(template.getGenerateConfigsTimeout());
119         this.configuration.setModels(template.getModels());
120         this.configuration.setCapabilities(template.getCapabilities());
121         this.configuration.setStartingPort(template.getStartingPort());
122         this.configuration.setDeviceCount(template.getDeviceCount());
123         this.configuration.setSsh(template.isSsh());
124         this.configuration.setIp(template.getIp());
125         this.configuration.setRpcHandler(template.getRpcHandler());
126         this.configuration.setOperationsCreator(template.getOperationsCreator());
127         this.configuration.setMdSal(template.isMdSal());
128         this.configuration.setRpcConfigFile(template.getRpcConfigFile());
129         this.configuration.setInitialConfigXMLFile(template.getInitialConfigXMLFile());
130         this.configuration.setNotificationFile(template.getNotificationFile());
131         this.configuration.setSchemasDir(template.getSchemasDir());
132         this.configuration.setDefaultYangResources(template.getDefaultYangResources());
133         this.configuration.setAuthProvider(template.getAuthProvider());
134         this.configuration.setPublickeyAuthenticator(template.getPublickeyAuthenticator());
135         return this;
136     }
137
138     public ConfigurationBuilder from(final TesttoolParameters testtoolParameters) {
139         this.configuration.setGenerateConfigsTimeout(testtoolParameters.generateConfigsTimeout);
140         this.configuration.setStartingPort(testtoolParameters.startingPort);
141         this.configuration.setDeviceCount(testtoolParameters.deviceCount);
142         this.configuration.setSsh(testtoolParameters.ssh);
143         this.configuration.setIp(testtoolParameters.ip);
144         this.configuration.setMdSal(testtoolParameters.mdSal);
145         this.configuration.setRpcConfigFile(testtoolParameters.rpcConfig);
146         this.configuration.setInitialConfigXMLFile(testtoolParameters.initialConfigXMLFile);
147         this.configuration.setNotificationFile(testtoolParameters.notificationFile);
148         this.configuration.setSchemasDir(testtoolParameters.schemasDir);
149         this.configuration.setCapabilities(testtoolParameters.exi ? Configuration.DEFAULT_BASE_CAPABILITIES_EXI
150                 : Configuration.DEFAULT_BASE_CAPABILITIES);
151         return this;
152     }
153
154     public Configuration build() {
155         return configuration;
156     }
157
158 }