2
2
3
3
import com .github .scribejava .core .httpclient .AbstractAsyncOnlyHttpClient ;
4
4
import com .github .scribejava .core .httpclient .multipart .MultipartPayload ;
5
- import com .github .scribejava .core .java8 .Consumer ;
6
5
import com .github .scribejava .core .model .OAuthAsyncRequestCallback ;
7
6
import com .github .scribejava .core .model .OAuthConstants ;
8
7
import com .github .scribejava .core .model .OAuthRequest ;
@@ -43,7 +42,7 @@ public void close() throws IOException {
43
42
@ Override
44
43
public <T >Future <T >executeAsync (String userAgent ,Map <String ,String >headers ,Verb httpVerb ,String completeUrl ,
45
44
byte []bodyContents ,OAuthAsyncRequestCallback <T >callback ,OAuthRequest .ResponseConverter <T >converter ) {
46
- return doExecuteAsync (userAgent ,headers ,httpVerb ,completeUrl ,new ByteArrayConsumer ( bodyContents ) ,callback ,
45
+ return doExecuteAsync (userAgent ,headers ,httpVerb ,completeUrl ,BodySetter . BYTE_ARRAY , bodyContents ,callback ,
47
46
converter );
48
47
}
49
48
@@ -58,19 +57,19 @@ public <T> Future<T> executeAsync(String userAgent, Map<String, String> headers,
58
57
@ Override
59
58
public <T >Future <T >executeAsync (String userAgent ,Map <String ,String >headers ,Verb httpVerb ,String completeUrl ,
60
59
String bodyContents ,OAuthAsyncRequestCallback <T >callback ,OAuthRequest .ResponseConverter <T >converter ) {
61
- return doExecuteAsync (userAgent ,headers ,httpVerb ,completeUrl ,new StringConsumer ( bodyContents ) ,callback ,
60
+ return doExecuteAsync (userAgent ,headers ,httpVerb ,completeUrl ,BodySetter . STRING , bodyContents ,callback ,
62
61
converter );
63
62
}
64
63
65
64
@ Override
66
65
public <T >Future <T >executeAsync (String userAgent ,Map <String ,String >headers ,Verb httpVerb ,String completeUrl ,
67
66
File bodyContents ,OAuthAsyncRequestCallback <T >callback ,OAuthRequest .ResponseConverter <T >converter ) {
68
- return doExecuteAsync (userAgent ,headers ,httpVerb ,completeUrl ,new FileConsumer ( bodyContents ) ,callback ,
67
+ return doExecuteAsync (userAgent ,headers ,httpVerb ,completeUrl ,BodySetter . FILE , bodyContents ,callback ,
69
68
converter );
70
69
}
71
70
72
71
private <T >Future <T >doExecuteAsync (String userAgent ,Map <String ,String >headers ,Verb httpVerb ,
73
- String completeUrl ,Consumer < BoundRequestBuilder > bodySetter ,OAuthAsyncRequestCallback <T >callback ,
72
+ String completeUrl ,BodySetter bodySetter , Object bodyContents ,OAuthAsyncRequestCallback <T >callback ,
74
73
OAuthRequest .ResponseConverter <T >converter ) {
75
74
final BoundRequestBuilder boundRequestBuilder ;
76
75
switch (httpVerb ) {
@@ -94,7 +93,7 @@ private <T> Future<T> doExecuteAsync(String userAgent, Map<String, String> heade
94
93
if (!headers .containsKey (CONTENT_TYPE )) {
95
94
boundRequestBuilder .addHeader (CONTENT_TYPE ,DEFAULT_CONTENT_TYPE );
96
95
}
97
- bodySetter .accept (boundRequestBuilder );
96
+ bodySetter .setBody (boundRequestBuilder , bodyContents );
98
97
}
99
98
100
99
for (Map .Entry <String ,String >header :headers .entrySet ()) {
@@ -108,45 +107,26 @@ private <T> Future<T> doExecuteAsync(String userAgent, Map<String, String> heade
108
107
return boundRequestBuilder .execute (new OAuthAsyncCompletionHandler <>(callback ,converter ));
109
108
}
110
109
111
- private static class ByteArrayConsumer implements Consumer <BoundRequestBuilder > {
112
-
113
- private final byte []bodyContents ;
114
-
115
- private ByteArrayConsumer (byte []bodyContents ) {
116
- this .bodyContents =bodyContents ;
117
- }
118
-
119
- @ Override
120
- public void accept (BoundRequestBuilder requestBuilder ) {
121
- requestBuilder .setBody (bodyContents );
122
- }
123
- }
124
-
125
- private static class StringConsumer implements Consumer <BoundRequestBuilder > {
126
-
127
- private final String bodyContents ;
128
-
129
- private StringConsumer (String bodyContents ) {
130
- this .bodyContents =bodyContents ;
131
- }
132
-
133
- @ Override
134
- public void accept (BoundRequestBuilder requestBuilder ) {
135
- requestBuilder .setBody (bodyContents );
136
- }
137
- }
138
-
139
- private static class FileConsumer implements Consumer <BoundRequestBuilder > {
140
-
141
- private final File bodyContents ;
142
-
143
- private FileConsumer (File bodyContents ) {
144
- this .bodyContents =bodyContents ;
145
- }
110
+ private enum BodySetter {
111
+ BYTE_ARRAY {
112
+ @ Override
113
+ BoundRequestBuilder setBody (BoundRequestBuilder requestBuilder ,Object bodyContents ) {
114
+ return requestBuilder .setBody ((byte [])bodyContents );
115
+ }
116
+ },
117
+ STRING {
118
+ @ Override
119
+ BoundRequestBuilder setBody (BoundRequestBuilder requestBuilder ,Object bodyContents ) {
120
+ return requestBuilder .setBody ((String )bodyContents );
121
+ }
122
+ },
123
+ FILE {
124
+ @ Override
125
+ BoundRequestBuilder setBody (BoundRequestBuilder requestBuilder ,Object bodyContents ) {
126
+ return requestBuilder .setBody ((File )bodyContents );
127
+ }
128
+ };
146
129
147
- @ Override
148
- public void accept (BoundRequestBuilder requestBuilder ) {
149
- requestBuilder .setBody (bodyContents );
150
- }
130
+ abstract BoundRequestBuilder setBody (BoundRequestBuilder requestBuilder ,Object bodyContents );
151
131
}
152
132
}