Fix 2.4.2 upgrade notes formatting refs #19330
[arvados.git] / sdk / java-v2 / src / main / java / org / arvados / client / config / ExternalConfigProvider.java
1 /*
2  * Copyright (C) The Arvados Authors. All rights reserved.
3  *
4  * SPDX-License-Identifier: AGPL-3.0 OR Apache-2.0
5  *
6  */
7
8 package org.arvados.client.config;
9
10 import java.io.File;
11
12 public class ExternalConfigProvider implements ConfigProvider {
13
14     private boolean apiHostInsecure;
15     private String keepWebHost;
16     private int keepWebPort;
17     private String apiHost;
18     private int apiPort;
19     private String apiToken;
20     private String apiProtocol;
21     private int fileSplitSize;
22     private File fileSplitDirectory;
23     private int numberOfCopies;
24     private int numberOfRetries;
25     private int connectTimeout;
26     private int readTimeout;
27     private int writeTimeout;
28
29     ExternalConfigProvider(boolean apiHostInsecure, String keepWebHost, int keepWebPort, String apiHost, int apiPort,
30                            String apiToken, String apiProtocol, int fileSplitSize, File fileSplitDirectory,
31                            int numberOfCopies, int numberOfRetries)
32     {
33         this.apiHostInsecure = apiHostInsecure;
34         this.keepWebHost = keepWebHost;
35         this.keepWebPort = keepWebPort;
36         this.apiHost = apiHost;
37         this.apiPort = apiPort;
38         this.apiToken = apiToken;
39         this.apiProtocol = apiProtocol;
40         this.fileSplitSize = fileSplitSize;
41         this.fileSplitDirectory = fileSplitDirectory;
42         this.numberOfCopies = numberOfCopies;
43         this.numberOfRetries = numberOfRetries;
44         this.connectTimeout = 60000;
45         this.readTimeout = 60000;
46         this.writeTimeout = 60000;
47     }
48
49     ExternalConfigProvider(boolean apiHostInsecure, String keepWebHost, int keepWebPort, String apiHost, int apiPort,
50                            String apiToken, String apiProtocol, int fileSplitSize, File fileSplitDirectory,
51                            int numberOfCopies, int numberOfRetries,
52                            int connectTimeout, int readTimeout, int writeTimeout)
53     {
54         this.apiHostInsecure = apiHostInsecure;
55         this.keepWebHost = keepWebHost;
56         this.keepWebPort = keepWebPort;
57         this.apiHost = apiHost;
58         this.apiPort = apiPort;
59         this.apiToken = apiToken;
60         this.apiProtocol = apiProtocol;
61         this.fileSplitSize = fileSplitSize;
62         this.fileSplitDirectory = fileSplitDirectory;
63         this.numberOfCopies = numberOfCopies;
64         this.numberOfRetries = numberOfRetries;
65         this.connectTimeout = connectTimeout;
66         this.readTimeout = readTimeout;
67         this.writeTimeout = writeTimeout;
68     }
69
70     public static ExternalConfigProviderBuilder builder() {
71         return new ExternalConfigProviderBuilder();
72     }
73
74     @Override
75     public String toString() {
76         return "ExternalConfigProvider{" +
77                 "apiHostInsecure=" + apiHostInsecure +
78                 ", keepWebHost='" + keepWebHost + '\'' +
79                 ", keepWebPort=" + keepWebPort +
80                 ", apiHost='" + apiHost + '\'' +
81                 ", apiPort=" + apiPort +
82                 ", apiToken='" + apiToken + '\'' +
83                 ", apiProtocol='" + apiProtocol + '\'' +
84                 ", fileSplitSize=" + fileSplitSize +
85                 ", fileSplitDirectory=" + fileSplitDirectory +
86                 ", numberOfCopies=" + numberOfCopies +
87                 ", numberOfRetries=" + numberOfRetries +
88                 '}';
89     }
90
91     public boolean isApiHostInsecure() {
92         return this.apiHostInsecure;
93     }
94
95     public String getKeepWebHost() {
96         return this.keepWebHost;
97     }
98
99     public int getKeepWebPort() {
100         return this.keepWebPort;
101     }
102
103     public String getApiHost() {
104         return this.apiHost;
105     }
106
107     public int getApiPort() {
108         return this.apiPort;
109     }
110
111     public String getApiToken() {
112         return this.apiToken;
113     }
114
115     public String getApiProtocol() {
116         return this.apiProtocol;
117     }
118
119     public int getFileSplitSize() {
120         return this.fileSplitSize;
121     }
122
123     public File getFileSplitDirectory() {
124         return this.fileSplitDirectory;
125     }
126
127     public int getNumberOfCopies() {
128         return this.numberOfCopies;
129     }
130
131     public int getNumberOfRetries() {
132         return this.numberOfRetries;
133     }
134
135     public int getConnectTimeout() {
136         return this.connectTimeout;
137     }
138
139     public int getReadTimeout() {
140         return this.readTimeout;
141     }
142
143     public int getWriteTimeout() {
144         return this.writeTimeout;
145     }
146
147     public static class ExternalConfigProviderBuilder {
148         private boolean apiHostInsecure;
149         private String keepWebHost;
150         private int keepWebPort;
151         private String apiHost;
152         private int apiPort;
153         private String apiToken;
154         private String apiProtocol;
155         private int fileSplitSize;
156         private File fileSplitDirectory;
157         private int numberOfCopies;
158         private int numberOfRetries;
159
160         ExternalConfigProviderBuilder() {
161         }
162
163         public ExternalConfigProvider.ExternalConfigProviderBuilder apiHostInsecure(boolean apiHostInsecure) {
164             this.apiHostInsecure = apiHostInsecure;
165             return this;
166         }
167
168         public ExternalConfigProvider.ExternalConfigProviderBuilder keepWebHost(String keepWebHost) {
169             this.keepWebHost = keepWebHost;
170             return this;
171         }
172
173         public ExternalConfigProvider.ExternalConfigProviderBuilder keepWebPort(int keepWebPort) {
174             this.keepWebPort = keepWebPort;
175             return this;
176         }
177
178         public ExternalConfigProvider.ExternalConfigProviderBuilder apiHost(String apiHost) {
179             this.apiHost = apiHost;
180             return this;
181         }
182
183         public ExternalConfigProvider.ExternalConfigProviderBuilder apiPort(int apiPort) {
184             this.apiPort = apiPort;
185             return this;
186         }
187
188         public ExternalConfigProvider.ExternalConfigProviderBuilder apiToken(String apiToken) {
189             this.apiToken = apiToken;
190             return this;
191         }
192
193         public ExternalConfigProvider.ExternalConfigProviderBuilder apiProtocol(String apiProtocol) {
194             this.apiProtocol = apiProtocol;
195             return this;
196         }
197
198         public ExternalConfigProvider.ExternalConfigProviderBuilder fileSplitSize(int fileSplitSize) {
199             this.fileSplitSize = fileSplitSize;
200             return this;
201         }
202
203         public ExternalConfigProvider.ExternalConfigProviderBuilder fileSplitDirectory(File fileSplitDirectory) {
204             this.fileSplitDirectory = fileSplitDirectory;
205             return this;
206         }
207
208         public ExternalConfigProvider.ExternalConfigProviderBuilder numberOfCopies(int numberOfCopies) {
209             this.numberOfCopies = numberOfCopies;
210             return this;
211         }
212
213         public ExternalConfigProvider.ExternalConfigProviderBuilder numberOfRetries(int numberOfRetries) {
214             this.numberOfRetries = numberOfRetries;
215             return this;
216         }
217
218         public ExternalConfigProvider build() {
219             return new ExternalConfigProvider(apiHostInsecure, keepWebHost, keepWebPort, apiHost, apiPort, apiToken, apiProtocol, fileSplitSize, fileSplitDirectory, numberOfCopies, numberOfRetries);
220         }
221
222     }
223 }