|
6 | 6 | import java.text.DateFormat;
|
7 | 7 | import java.text.SimpleDateFormat;
|
8 | 8 | import java.util.Date;
|
| 9 | +import java.util.HashMap; |
9 | 10 | import java.util.Locale;
|
| 11 | +import java.util.Map; |
10 | 12 | import java.util.Random;
|
11 | 13 | import java.util.TimeZone;
|
12 | 14 | import java.util.concurrent.TimeUnit;
|
@@ -61,17 +63,36 @@ public static DbxRequestConfig.Builder newRequestConfig() {
|
61 | 63 | */
|
62 | 64 | public static HttpRequestor newHttpRequestor() {
|
63 | 65 | String val = System.getProperty(HTTP_REQUESTOR_PROPERTY);
|
64 |
| - if (val == null || val.equals("Standard")) { |
| 66 | + Class [] classes = new Class [] { |
| 67 | + StandardHttpRequestor.class, |
| 68 | + OkHttpRequestor.class, |
| 69 | + OkHttp3Requestor.class, |
| 70 | + GoogleAppEngineRequestor.class |
| 71 | + }; |
| 72 | + Map<String, Class<?>> validNames = new HashMap<String, Class<?>>(); |
| 73 | + for (Class<?> clazz : classes) { |
| 74 | + validNames.put(clazz.getSimpleName(), clazz); |
| 75 | + } |
| 76 | + |
| 77 | + Class<?> type = validNames.get(val); |
| 78 | + if (type == null || type.equals(StandardHttpRequestor.class)) { |
65 | 79 | return newStandardHttpRequestor();
|
66 |
| - } else if(val.equals("OkHttp")) { |
| 80 | + } else if(type.equals(OkHttpRequestor.class)) { |
67 | 81 | return newOkHttpRequestor();
|
68 |
| - } else if(val.equals("OkHttp3")) { |
| 82 | + } else if(type.equals(OkHttp3Requestor.class)) { |
69 | 83 | return newOkHttp3Requestor();
|
70 |
| - } else if(val.equals("GoogleAppEngine")) { |
| 84 | + } else if(type.equals(GoogleAppEngineRequestor.class)) { |
71 | 85 | return newGoogleAppEngineRequestor();
|
72 | 86 | } else {
|
73 |
| - fail("Invalid value for System property \"" + HTTP_REQUESTOR_PROPERTY + "\". " + |
74 |
| - "Expected \"Standard\", \"OkHttp\", or \"GoogleAppEngine\", but was: \"" + val + "\"."); |
| 87 | + StringBuilder message = new StringBuilder() |
| 88 | + .append("Invalid value for System property \"") |
| 89 | + .append(HTTP_REQUESTOR_PROPERTY) |
| 90 | + .append("\". Expected "); |
| 91 | + for (String validName : validNames.keySet()) { |
| 92 | + message.append("\"").append(validName).append("\", "); |
| 93 | + } |
| 94 | + message.append("but was: \"").append(val).append("\"."); |
| 95 | + fail(message.toString()); |
75 | 96 | return null;
|
76 | 97 | }
|
77 | 98 | }
|
|
0 commit comments