Honor EXI flag in testtool
[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
18 public class ConfigurationBuilder {
19
20     private final Configuration configuration;
21
22     public ConfigurationBuilder() {
23         this.configuration = new Configuration();
24     }
25
26     public ConfigurationBuilder setPublickeyAuthenticator(final PublickeyAuthenticator publickeyAuthenticator) {
27         this.configuration.setPublickeyAuthenticator(publickeyAuthenticator);
28         return this;
29     }
30
31     public ConfigurationBuilder setAuthProvider(final AuthProvider authProvider) {
32         this.configuration.setAuthProvider(authProvider);
33         return this;
34     }
35
36     public ConfigurationBuilder setGetDefaultYangResources(final Set<YangResource> defaultYangResources) {
37         this.configuration.setDefaultYangResources(defaultYangResources);
38         return this;
39     }
40
41     public ConfigurationBuilder setThreadPoolSize(final int threadPoolSize) {
42         this.configuration.setThreadPoolSize(threadPoolSize);
43         return this;
44     }
45
46     public ConfigurationBuilder setGenerateConfigsTimeout(final int generateConfigsTimeout) {
47         this.configuration.setGenerateConfigsTimeout(generateConfigsTimeout);
48         return this;
49     }
50
51     public ConfigurationBuilder setModels(final Set<String> models) {
52         this.configuration.setModels(models);
53         return this;
54     }
55
56     public ConfigurationBuilder setCapabilities(final Set<String> capabilities) {
57         this.configuration.setCapabilities(capabilities);
58         return this;
59     }
60
61     public ConfigurationBuilder setStartingPort(final int startingPort) {
62         this.configuration.setStartingPort(startingPort);
63         return this;
64     }
65
66     public ConfigurationBuilder setDeviceCount(final int deviceCount) {
67         this.configuration.setDeviceCount(deviceCount);
68         return this;
69     }
70
71     public ConfigurationBuilder setSsh(final boolean ssh) {
72         this.configuration.setSsh(ssh);
73         return this;
74     }
75
76     public ConfigurationBuilder setIp(final String ip) {
77         this.configuration.setIp(ip);
78         return this;
79     }
80
81     public ConfigurationBuilder setRpcMapping(final RpcHandler rpcHandler) {
82         this.configuration.setRpcHandler(rpcHandler);
83         return this;
84     }
85
86     @Deprecated
87     public ConfigurationBuilder setMdSal(final boolean mdSal) {
88         this.configuration.setMdSal(mdSal);
89         return this;
90     }
91
92     @Deprecated
93     public ConfigurationBuilder setRpcConfigFile(final File rpcConfigFile) {
94         this.configuration.setRpcConfigFile(rpcConfigFile);
95         return this;
96     }
97
98     @Deprecated
99     public ConfigurationBuilder setInitialConfigXMLFile(final File initialConfigXMLFile) {
100         this.configuration.setInitialConfigXMLFile(initialConfigXMLFile);
101         return this;
102     }
103
104     @Deprecated
105     public ConfigurationBuilder setNotificationFile(final File notificationFile) {
106         this.configuration.setNotificationFile(notificationFile);
107         return this;
108     }
109
110     public ConfigurationBuilder setOperationsCreator(final OperationsCreator operationsCreator) {
111         this.configuration.setOperationsCreator(operationsCreator);
112         return this;
113     }
114
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());
134         return this;
135     }
136
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);
150         return this;
151     }
152
153     public Configuration build() {
154         return configuration;
155     }
156
157 }