21700: Install Bundler system-wide in Rails postinst
[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 static final int DEFAULT_CONNECTION_TIMEOUT = 60000;
15     private static final int DEFAULT_READ_TIMEOUT = 60000;
16     private static final int DEFAULT_WRITE_TIMEOUT = 60000;
17
18     private boolean apiHostInsecure;
19     private String keepWebHost;
20     private int keepWebPort;
21     private String apiHost;
22     private int apiPort;
23     private String apiToken;
24     private String apiProtocol;
25     private int fileSplitSize;
26     private File fileSplitDirectory;
27     private int numberOfCopies;
28     private int numberOfRetries;
29     private int connectTimeout;
30     private int readTimeout;
31     private int writeTimeout;
32
33     ExternalConfigProvider(boolean apiHostInsecure, String keepWebHost, int keepWebPort, String apiHost, int apiPort,
34                            String apiToken, String apiProtocol, int fileSplitSize, File fileSplitDirectory,
35                            int numberOfCopies, int numberOfRetries)
36     {
37         this.apiHostInsecure = apiHostInsecure;
38         this.keepWebHost = keepWebHost;
39         this.keepWebPort = keepWebPort;
40         this.apiHost = apiHost;
41         this.apiPort = apiPort;
42         this.apiToken = apiToken;
43         this.apiProtocol = apiProtocol;
44         this.fileSplitSize = fileSplitSize;
45         this.fileSplitDirectory = fileSplitDirectory;
46         this.numberOfCopies = numberOfCopies;
47         this.numberOfRetries = numberOfRetries;
48         this.connectTimeout = DEFAULT_CONNECTION_TIMEOUT;
49         this.readTimeout = DEFAULT_READ_TIMEOUT;
50         this.writeTimeout = DEFAULT_WRITE_TIMEOUT;
51     }
52
53     ExternalConfigProvider(boolean apiHostInsecure, String keepWebHost, int keepWebPort, String apiHost, int apiPort,
54                            String apiToken, String apiProtocol, int fileSplitSize, File fileSplitDirectory,
55                            int numberOfCopies, int numberOfRetries,
56                            int connectTimeout, int readTimeout, int writeTimeout)
57     {
58         this.apiHostInsecure = apiHostInsecure;
59         this.keepWebHost = keepWebHost;
60         this.keepWebPort = keepWebPort;
61         this.apiHost = apiHost;
62         this.apiPort = apiPort;
63         this.apiToken = apiToken;
64         this.apiProtocol = apiProtocol;
65         this.fileSplitSize = fileSplitSize;
66         this.fileSplitDirectory = fileSplitDirectory;
67         this.numberOfCopies = numberOfCopies;
68         this.numberOfRetries = numberOfRetries;
69         this.connectTimeout = connectTimeout;
70         this.readTimeout = readTimeout;
71         this.writeTimeout = writeTimeout;
72     }
73
74     public static ExternalConfigProviderBuilder builder() {
75         return new ExternalConfigProviderBuilder();
76     }
77
78     @Override
79     public String toString() {
80         return "ExternalConfigProvider{" +
81                 "apiHostInsecure=" + apiHostInsecure +
82                 ", keepWebHost='" + keepWebHost + '\'' +
83                 ", keepWebPort=" + keepWebPort +
84                 ", apiHost='" + apiHost + '\'' +
85                 ", apiPort=" + apiPort +
86                 ", apiToken='" + apiToken + '\'' +
87                 ", apiProtocol='" + apiProtocol + '\'' +
88                 ", fileSplitSize=" + fileSplitSize +
89                 ", fileSplitDirectory=" + fileSplitDirectory +
90                 ", numberOfCopies=" + numberOfCopies +
91                 ", numberOfRetries=" + numberOfRetries +
92                 '}';
93     }
94
95     public boolean isApiHostInsecure() {
96         return this.apiHostInsecure;
97     }
98
99     public String getKeepWebHost() {
100         return this.keepWebHost;
101     }
102
103     public int getKeepWebPort() {
104         return this.keepWebPort;
105     }
106
107     public String getApiHost() {
108         return this.apiHost;
109     }
110
111     public int getApiPort() {
112         return this.apiPort;
113     }
114
115     public String getApiToken() {
116         return this.apiToken;
117     }
118
119     public String getApiProtocol() {
120         return this.apiProtocol;
121     }
122
123     public int getFileSplitSize() {
124         return this.fileSplitSize;
125     }
126
127     public File getFileSplitDirectory() {
128         return this.fileSplitDirectory;
129     }
130
131     public int getNumberOfCopies() {
132         return this.numberOfCopies;
133     }
134
135     public int getNumberOfRetries() {
136         return this.numberOfRetries;
137     }
138
139     public int getConnectTimeout() {
140         return this.connectTimeout;
141     }
142
143     public int getReadTimeout() {
144         return this.readTimeout;
145     }
146
147     public int getWriteTimeout() {
148         return this.writeTimeout;
149     }
150
151     public static class ExternalConfigProviderBuilder {
152         private boolean apiHostInsecure;
153         private String keepWebHost;
154         private int keepWebPort;
155         private String apiHost;
156         private int apiPort;
157         private String apiToken;
158         private String apiProtocol;
159         private int fileSplitSize;
160         private File fileSplitDirectory;
161         private int numberOfCopies;
162         private int numberOfRetries;
163         private int connectTimeout = DEFAULT_CONNECTION_TIMEOUT;
164         private int readTimeout = DEFAULT_READ_TIMEOUT;
165         private int writeTimeout = DEFAULT_WRITE_TIMEOUT;
166
167         ExternalConfigProviderBuilder() {
168         }
169
170         public ExternalConfigProvider.ExternalConfigProviderBuilder apiHostInsecure(boolean apiHostInsecure) {
171             this.apiHostInsecure = apiHostInsecure;
172             return this;
173         }
174
175         public ExternalConfigProvider.ExternalConfigProviderBuilder keepWebHost(String keepWebHost) {
176             this.keepWebHost = keepWebHost;
177             return this;
178         }
179
180         public ExternalConfigProvider.ExternalConfigProviderBuilder keepWebPort(int keepWebPort) {
181             this.keepWebPort = keepWebPort;
182             return this;
183         }
184
185         public ExternalConfigProvider.ExternalConfigProviderBuilder apiHost(String apiHost) {
186             this.apiHost = apiHost;
187             return this;
188         }
189
190         public ExternalConfigProvider.ExternalConfigProviderBuilder apiPort(int apiPort) {
191             this.apiPort = apiPort;
192             return this;
193         }
194
195         public ExternalConfigProvider.ExternalConfigProviderBuilder apiToken(String apiToken) {
196             this.apiToken = apiToken;
197             return this;
198         }
199
200         public ExternalConfigProvider.ExternalConfigProviderBuilder apiProtocol(String apiProtocol) {
201             this.apiProtocol = apiProtocol;
202             return this;
203         }
204
205         public ExternalConfigProvider.ExternalConfigProviderBuilder fileSplitSize(int fileSplitSize) {
206             this.fileSplitSize = fileSplitSize;
207             return this;
208         }
209
210         public ExternalConfigProvider.ExternalConfigProviderBuilder fileSplitDirectory(File fileSplitDirectory) {
211             this.fileSplitDirectory = fileSplitDirectory;
212             return this;
213         }
214
215         public ExternalConfigProvider.ExternalConfigProviderBuilder numberOfCopies(int numberOfCopies) {
216             this.numberOfCopies = numberOfCopies;
217             return this;
218         }
219
220         public ExternalConfigProvider.ExternalConfigProviderBuilder numberOfRetries(int numberOfRetries) {
221             this.numberOfRetries = numberOfRetries;
222             return this;
223         }
224
225         public ExternalConfigProvider.ExternalConfigProviderBuilder connectTimeout(int connectTimeout) {
226             this.connectTimeout = connectTimeout;
227             return this;
228         }
229
230         public ExternalConfigProvider.ExternalConfigProviderBuilder readTimeout(int readTimeout) {
231             this.readTimeout = readTimeout;
232             return this;
233         }
234
235         public ExternalConfigProvider.ExternalConfigProviderBuilder writeTimeout(int writeTimeout) {
236             this.writeTimeout = writeTimeout;
237             return this;
238         }
239
240         public ExternalConfigProvider build() {
241             return new ExternalConfigProvider(apiHostInsecure, keepWebHost, keepWebPort, apiHost, apiPort, apiToken, apiProtocol, fileSplitSize, fileSplitDirectory, numberOfCopies, numberOfRetries, connectTimeout, readTimeout, writeTimeout);
242         }
243
244     }
245 }