11package com .convertapi ;
22
3+ import okhttp3 .OkHttpClient ;
4+
5+ import java .util .function .Function ;
6+
37public class Config {
48 private static String defaultSecret ;
9+ private static Function <OkHttpClient .Builder , OkHttpClient .Builder > defaultHttpClientBuilder = b -> b ;
510 private static final String SCHEME = "https" ;
611 @ SuppressWarnings ("SpellCheckingInspection" )
712 private static final String HOST = "v2.convertapi.com" ;
@@ -10,30 +15,42 @@ public class Config {
1015 private final String host ;
1116 private final String secret ;
1217 private final int timeout ;
18+ private final Function <OkHttpClient .Builder , OkHttpClient .Builder > httpClientBuilder ;
1319
1420 @ SuppressWarnings ("unused" )
15- public Config (String secret , String scheme , String host , int timeout ) {
21+ public Config (String secret , String scheme , String host , int timeout , Function < OkHttpClient . Builder , OkHttpClient . Builder > httpClientBuilder ) {
1622 this .scheme = scheme ;
1723 this .host = host ;
1824 this .secret = secret ;
1925 this .timeout = timeout ;
26+ this .httpClientBuilder = httpClientBuilder ;
2027 }
2128
2229 @ SuppressWarnings ("WeakerAccess" )
2330 public static Config defaults () {
24- return new Config (Config .defaultSecret , SCHEME , HOST , TIMEOUT );
31+ return new Config (Config .defaultSecret , SCHEME , HOST , TIMEOUT , Config . defaultHttpClientBuilder );
2532 }
2633
2734 @ SuppressWarnings ("WeakerAccess" )
2835 public static Config defaults (String secret ) {
29- return new Config (secret , SCHEME , HOST , TIMEOUT );
36+ return new Config (secret , SCHEME , HOST , TIMEOUT , Config .defaultHttpClientBuilder );
37+ }
38+
39+ @ SuppressWarnings ("WeakerAccess" )
40+ public static Config defaults (String secret , Function <OkHttpClient .Builder , OkHttpClient .Builder > httpClientBuilder ) {
41+ return new Config (secret , SCHEME , HOST , TIMEOUT , httpClientBuilder );
3042 }
3143
3244 @ SuppressWarnings ("unused" )
3345 public static void setDefaultSecret (String defaultSecret ) {
3446 Config .defaultSecret = defaultSecret ;
3547 }
3648
49+ @ SuppressWarnings ("unused" )
50+ public static void setDefaultHttpBuilder (Function <OkHttpClient .Builder , OkHttpClient .Builder > httpClientBuilder ) {
51+ Config .defaultHttpClientBuilder = httpClientBuilder ;
52+ }
53+
3754 int getTimeout () {
3855 return timeout ;
3956 }
@@ -49,4 +66,8 @@ String getHost() {
4966 String getSecret () {
5067 return secret ;
5168 }
69+
70+ Function <OkHttpClient .Builder , OkHttpClient .Builder > getHttpClientBuilder () {
71+ return httpClientBuilder ;
72+ }
5273}
0 commit comments