Skip to content

Commit 80d3ead

Browse files
committed
Renamed String response factories
1 parent 7b24eeb commit 80d3ead

File tree

11 files changed

+76
-62
lines changed

11 files changed

+76
-62
lines changed

src/main/java/com/taboola/rest/api/RestAPIClient.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
import java.util.ArrayList;
44
import java.util.Collection;
55
import java.util.List;
6-
import java.util.Map;
76
import java.util.Objects;
8-
import java.util.function.BiFunction;
97
import java.util.stream.Collectors;
108

119
import org.apache.logging.log4j.LogManager;
@@ -15,12 +13,13 @@
1513
import com.taboola.rest.api.exceptions.factories.DefaultExceptionFactory;
1614
import com.taboola.rest.api.exceptions.factories.ExceptionFactory;
1715
import com.taboola.rest.api.internal.CommunicationFactory;
18-
import com.taboola.rest.api.internal.ResponseFactories;
16+
import com.taboola.rest.api.internal.StringResponseFactories;
1917
import com.taboola.rest.api.internal.config.CommunicationConfig;
2018
import com.taboola.rest.api.internal.config.SerializationConfig;
2119
import com.taboola.rest.api.internal.config.UserAgentHeader;
2220
import com.taboola.rest.api.internal.serialization.SerializationMapperCreator;
2321
import com.taboola.rest.api.model.RequestHeader;
22+
import com.taboola.rest.api.model.StringResponseFactory;
2423

2524
/**
2625
* Created by vladi.m
@@ -72,7 +71,7 @@ public static class RestAPIClientBuilder {
7271
private String restAPIVersion;
7372
private ExceptionFactory exceptionFactory;
7473
private ObjectMapper objectMapper;
75-
private final ResponseFactories responseFactories = new ResponseFactories();
74+
private final StringResponseFactories stringResponseFactories = new StringResponseFactories();
7675

7776
public RestAPIClientBuilder setBaseUrl(String baseUrl) {
7877
this.baseUrl = baseUrl;
@@ -144,8 +143,8 @@ public RestAPIClientBuilder setObjectMapper(ObjectMapper objectMapper) {
144143
return this;
145144
}
146145

147-
public RestAPIClientBuilder addResponseFactory(Class<?> clazz, BiFunction<Map<String, List<String>>, String, Object> responseFactory) {
148-
responseFactories.addResponseFactory(clazz, responseFactory);
146+
public RestAPIClientBuilder addStringBodyResponseFactory(Class<?> clazz, StringResponseFactory stringResponseFactory) {
147+
stringResponseFactories.addFactory(clazz, stringResponseFactory);
149148
return this;
150149
}
151150

@@ -154,7 +153,7 @@ public RestAPIClient build() {
154153
String finalUserAgent = String.format("%s/%s/%s (%s)", userAgentPrefix, restAPIVersion, VERSION, userAgentSuffix);
155154
Collection<RequestHeader> headers = getAllHeaders(this.headers, finalUserAgent);
156155
CommunicationConfig config = new CommunicationConfig(baseUrl, connectionTimeoutMillis, readTimeoutMillis, writeTimeoutMillis, maxIdleConnections,
157-
keepAliveDurationMillis, headers, debug, exceptionFactory, objectMapper, responseFactories);
156+
keepAliveDurationMillis, headers, debug, exceptionFactory, objectMapper, stringResponseFactories);
158157
return new RestAPIClient(new CommunicationFactory(config));
159158
}
160159

src/main/java/com/taboola/rest/api/internal/CommunicationFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ private HttpLoggingInterceptor createLoggingInterceptor(CommunicationConfig conf
4343

4444
private Retrofit.Builder createRetrofitBuilder(CommunicationConfig config) {
4545
return new Retrofit.Builder()
46-
.addConverterFactory(StringConverterFactory.create(config.getResponseFactories()))
46+
.addConverterFactory(StringConverterFactory.create(config.getStringResponseFactories()))
4747
.addConverterFactory(JacksonConverterFactory.create(config.getObjectMapper()))
48-
.addCallAdapterFactory(SynchronousCallAdapterFactory.create(config.getExceptionFactory(), config.getResponseFactories()))
48+
.addCallAdapterFactory(SynchronousCallAdapterFactory.create(config.getExceptionFactory(), config.getStringResponseFactories()))
4949
.client(createOkHttpClient(config));
5050
}
5151

src/main/java/com/taboola/rest/api/internal/ResponseFactories.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

src/main/java/com/taboola/rest/api/internal/StringConverterFactory.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@
1515
*/
1616
public class StringConverterFactory extends Converter.Factory {
1717

18-
private final ResponseFactories responseFactories;
18+
private final StringResponseFactories stringResponseFactories;
1919

20-
public static StringConverterFactory create(ResponseFactories responseFactories) {
21-
return new StringConverterFactory(responseFactories);
20+
public static StringConverterFactory create(StringResponseFactories stringResponseFactories) {
21+
return new StringConverterFactory(stringResponseFactories);
2222
}
2323

24-
private StringConverterFactory(ResponseFactories responseFactories) {
25-
this.responseFactories = responseFactories;
24+
private StringConverterFactory(StringResponseFactories stringResponseFactories) {
25+
this.stringResponseFactories = stringResponseFactories;
2626
}
2727

2828
@Override
2929
public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) {
30-
if (String.class.equals(type) || responseFactories.isExist(type)) {
30+
if (String.class.equals(type) || stringResponseFactories.isExist(type)) {
3131
return ResponseBody::string;
3232
}
3333
return null;
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.taboola.rest.api.internal;
2+
3+
import java.lang.reflect.Type;
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
7+
import com.taboola.rest.api.model.StringResponseFactory;
8+
9+
public class StringResponseFactories {
10+
private final Map<Type, StringResponseFactory> typeToResponseFactory = new HashMap<>();
11+
12+
public void addFactory(Type type, StringResponseFactory stringResponseFactory) {
13+
typeToResponseFactory.put(type, stringResponseFactory);
14+
}
15+
16+
public StringResponseFactory getFactory(Type type){
17+
return typeToResponseFactory.get(type);
18+
}
19+
20+
public boolean isExist(Type type){
21+
return typeToResponseFactory.containsKey(type);
22+
}
23+
24+
@Override
25+
public String toString() {
26+
return "StringResponseFactories{" +
27+
"typeToResponseFactory=" + typeToResponseFactory +
28+
'}';
29+
}
30+
}

src/main/java/com/taboola/rest/api/internal/SynchronousCallAdapterFactory.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,17 @@ public class SynchronousCallAdapterFactory extends CallAdapter.Factory {
2929
private static final int BAD_REQUEST_HTTP_STATUS_CODE = 400;
3030
private static final int INTERNAL_SERVER_ERROR_HTTP_STATUS_CODE = 500;
3131
private final ExceptionFactory exceptionFactory;
32-
private final ResponseFactories responseFactories;
32+
private final StringResponseFactories stringResponseHandler;
3333

3434
public static SynchronousCallAdapterFactory create(ExceptionFactory exceptionFactory,
35-
ResponseFactories responseFactories) {
36-
return new SynchronousCallAdapterFactory(exceptionFactory, responseFactories);
35+
StringResponseFactories stringResponseFactories) {
36+
return new SynchronousCallAdapterFactory(exceptionFactory, stringResponseFactories);
3737
}
3838

3939
private SynchronousCallAdapterFactory(ExceptionFactory exceptionFactory,
40-
ResponseFactories responseFactories) {
40+
StringResponseFactories stringResponseFactories) {
4141
this.exceptionFactory = exceptionFactory;
42-
this.responseFactories = responseFactories;
42+
this.stringResponseHandler = stringResponseFactories;
4343
}
4444

4545
@Override
@@ -62,8 +62,8 @@ public Object adapt(Call<Object> call) {
6262
try {
6363
Response<Object> response = call.execute();
6464
if (response.isSuccessful()) {
65-
if (responseFactories.isExist(returnType)) {
66-
obj = responseFactories.getResponseFactory(returnType).apply(response.headers().toMultimap(), (String) response.body());
65+
if (stringResponseHandler.isExist(returnType)) {
66+
obj = stringResponseHandler.getFactory(returnType).handlerResponse(response.headers().toMultimap(), (String) response.body());
6767
} else {
6868
obj = response.body();
6969
}

src/main/java/com/taboola/rest/api/internal/config/CommunicationConfig.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import com.fasterxml.jackson.databind.ObjectMapper;
77
import com.taboola.rest.api.exceptions.factories.ExceptionFactory;
8-
import com.taboola.rest.api.internal.ResponseFactories;
8+
import com.taboola.rest.api.internal.StringResponseFactories;
99
import com.taboola.rest.api.model.RequestHeader;
1010

1111
/**
@@ -26,12 +26,12 @@ public class CommunicationConfig {
2626
private final Collection<RequestHeader> headers;
2727
private final ExceptionFactory exceptionFactory;
2828
private final ObjectMapper objectMapper;
29-
private final ResponseFactories responseFactories;
29+
private final StringResponseFactories stringResponseFactories;
3030

3131
public CommunicationConfig(String baseUrl, Long connectionTimeoutMillis, Long readTimeoutMillis,
3232
Long writeTimeoutMillis, Integer maxIdleConnections, Long keepAliveDurationMillis,
3333
Collection<RequestHeader> headers, boolean debug, ExceptionFactory exceptionFactory,
34-
ObjectMapper objectMapper, ResponseFactories responseFactories) {
34+
ObjectMapper objectMapper, StringResponseFactories stringResponseFactories) {
3535
this.baseUrl = baseUrl;
3636
this.connectionTimeoutMillis = connectionTimeoutMillis;
3737
this.readTimeoutMillis = readTimeoutMillis;
@@ -42,7 +42,7 @@ public CommunicationConfig(String baseUrl, Long connectionTimeoutMillis, Long re
4242
this.debug = debug;
4343
this.exceptionFactory = exceptionFactory;
4444
this.objectMapper = objectMapper;
45-
this.responseFactories = responseFactories;
45+
this.stringResponseFactories = stringResponseFactories;
4646
}
4747

4848
public String getBaseUrl() {
@@ -85,8 +85,8 @@ public ObjectMapper getObjectMapper() {
8585
return objectMapper;
8686
}
8787

88-
public ResponseFactories getResponseFactories() {
89-
return responseFactories;
88+
public StringResponseFactories getStringResponseFactories() {
89+
return stringResponseFactories;
9090
}
9191

9292
@Override
@@ -102,7 +102,7 @@ public String toString() {
102102
", headers=" + headers +
103103
", exceptionFactory=" + exceptionFactory +
104104
", objectMapper=" + objectMapper +
105-
", responseFactories=" + responseFactories +
105+
", stringResponseFactories=" + stringResponseFactories +
106106
'}';
107107
}
108108
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.taboola.rest.api.model;
2+
3+
import java.util.List;
4+
import java.util.Map;
5+
6+
/**
7+
* Created by vladi.m
8+
* Date 14/07/2021
9+
* Time 09
10+
* Copyright Taboola
11+
*/
12+
public interface StringResponseFactory {
13+
14+
Object handlerResponse(Map<String, List<String>> responseHeaders, String responsePayload);
15+
}

src/test/java/com/taboola/rest/api/internal/CommunicationFactoryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public void beforeTest() {
3737
CommunicationConfig communicationConfig = new CommunicationConfig("http://localhost",
3838
1L, 1L, 1L, 1, 60L,
3939
Collections.singleton(new UserAgentHeader("Dummy-Agent")),true, new DefaultExceptionFactory(),
40-
new ObjectMapper(), new ResponseFactories());
40+
new ObjectMapper(), new StringResponseFactories());
4141
testInstance = new CommunicationFactory(communicationConfig);
4242
}
4343

src/test/java/com/taboola/rest/api/internal/StringConverterFactoryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class StringConverterFactoryTest {
1515

1616
@Test
1717
public void testResponseBodyConverter() {
18-
StringConverterFactory testInstance = StringConverterFactory.create(new ResponseFactories());
18+
StringConverterFactory testInstance = StringConverterFactory.create(new StringResponseFactories());
1919

2020
Converter<ResponseBody, ?> responseConverter = testInstance.responseBodyConverter(String.class, null, null);
2121
Assert.assertNotNull("Invalid converter, expecting converter", responseConverter);

0 commit comments

Comments
 (0)