Skip to content

Commit a99df6d

Browse files
author
Yaniv Inbar
committed
[api] add legacyDataWrapper param to AbstractGoogleJsonClient constructor
https://codereview.appspot.com/6625052/
1 parent 45d898a commit a99df6d

File tree

4 files changed

+27
-10
lines changed

4 files changed

+27
-10
lines changed

google-api-client/src/main/java/com/google/api/client/googleapis/services/json/AbstractGoogleJsonClient.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@ public abstract class AbstractGoogleJsonClient extends AbstractGoogleClient {
3535
* @param rootUrl root URL of the service
3636
* @param servicePath service path
3737
* @param httpRequestInitializer HTTP request initializer or {@code null} for none
38+
* @param legacyDataWrapper whether using the legacy data wrapper in responses
3839
*/
3940
protected AbstractGoogleJsonClient(HttpTransport transport, JsonFactory jsonFactory,
40-
String rootUrl, String servicePath, HttpRequestInitializer httpRequestInitializer) {
41-
super(transport, httpRequestInitializer, rootUrl, servicePath, new JsonObjectParser(
42-
jsonFactory));
41+
String rootUrl, String servicePath, HttpRequestInitializer httpRequestInitializer,
42+
boolean legacyDataWrapper) {
43+
super(transport, httpRequestInitializer, rootUrl, servicePath, newObjectParser(
44+
jsonFactory, legacyDataWrapper));
4345
}
4446

4547
/**
@@ -51,7 +53,7 @@ protected AbstractGoogleJsonClient(HttpTransport transport, JsonFactory jsonFact
5153
* @param googleClientRequestInitializer Google request initializer or {@code null} for none
5254
* @param applicationName application name to be sent in the User-Agent header of requests or
5355
* {@code null} for none
54-
* @param subscriptionStore subscription store
56+
* @param subscriptionStore subscription store or {@code null} for none
5557
* @param suppressPatternChecks whether discovery pattern checks should be suppressed on required
5658
* parameters
5759
*/
@@ -74,6 +76,14 @@ public final JsonFactory getJsonFactory() {
7476
return getObjectParser().getJsonFactory();
7577
}
7678

79+
/**
80+
* @param jsonFactory JSON factory
81+
* @param legacyDataWrapper whether using the legacy data wrapper in responses
82+
*/
83+
static JsonObjectParser newObjectParser(JsonFactory jsonFactory, boolean legacyDataWrapper) {
84+
return legacyDataWrapper ? new JsonCParser(jsonFactory) : new JsonObjectParser(jsonFactory);
85+
}
86+
7787
/**
7888
* Builder for {@link AbstractGoogleJsonClient}.
7989
*
@@ -94,13 +104,12 @@ public abstract static class Builder extends AbstractGoogleClient.Builder {
94104
protected Builder(HttpTransport transport, JsonFactory jsonFactory, String rootUrl,
95105
String servicePath, HttpRequestInitializer httpRequestInitializer,
96106
boolean legacyDataWrapper) {
97-
super(transport, rootUrl, servicePath, legacyDataWrapper
98-
? new JsonCParser(jsonFactory) : new JsonObjectParser(jsonFactory),
107+
super(transport, rootUrl, servicePath, newObjectParser(jsonFactory, legacyDataWrapper),
99108
httpRequestInitializer);
100109
}
101110

102111
@Override
103-
public JsonObjectParser getObjectParser() {
112+
public final JsonObjectParser getObjectParser() {
104113
return (JsonObjectParser) super.getObjectParser();
105114
}
106115

google-api-client/src/main/java/com/google/api/client/googleapis/services/json/AbstractGoogleJsonClientRequest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.google.api.client.googleapis.json.JsonCContent;
2020
import com.google.api.client.googleapis.json.JsonCParser;
2121
import com.google.api.client.googleapis.services.AbstractGoogleClientRequest;
22+
import com.google.api.client.googleapis.subscriptions.Subscription;
2223
import com.google.api.client.googleapis.subscriptions.SubscriptionUtils;
2324
import com.google.api.client.googleapis.subscriptions.json.JsonNotificationCallback;
2425
import com.google.api.client.http.HttpHeaders;
@@ -84,6 +85,11 @@ public AbstractGoogleJsonClientRequest<T> setNotificationClientToken(
8485
notificationClientToken);
8586
}
8687

88+
@Override
89+
protected AbstractGoogleJsonClientRequest<T> setLastSubscription(Subscription lastSubscription) {
90+
return (AbstractGoogleJsonClientRequest<T>) super.setLastSubscription(lastSubscription);
91+
}
92+
8793
/**
8894
* Queues the request into the specified batch request container.
8995
*

google-api-client/src/main/java/com/google/api/client/googleapis/testing/services/json/MockGoogleJsonClient.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,12 @@ public class MockGoogleJsonClient extends AbstractGoogleJsonClient {
3434
* @param rootUrl root URL of the service
3535
* @param servicePath service path
3636
* @param httpRequestInitializer HTTP request initializer or {@code null} for none
37+
* @param legacyDataWrapper whether using the legacy data wrapper in responses
3738
*/
3839
public MockGoogleJsonClient(HttpTransport transport, JsonFactory jsonFactory, String rootUrl,
39-
String servicePath, HttpRequestInitializer httpRequestInitializer) {
40-
super(transport, jsonFactory, rootUrl, servicePath, httpRequestInitializer);
40+
String servicePath, HttpRequestInitializer httpRequestInitializer,
41+
boolean legacyDataWrapper) {
42+
super(transport, jsonFactory, rootUrl, servicePath, httpRequestInitializer, legacyDataWrapper);
4143
}
4244

4345
/**

google-api-client/src/test/java/com/google/api/client/googleapis/services/json/AbstractGoogleJsonClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public LowLevelHttpResponse execute() {
5757
};
5858
JsonFactory jsonFactory = new JacksonFactory();
5959
MockGoogleJsonClient client =
60-
new MockGoogleJsonClient(transport, jsonFactory, HttpTesting.SIMPLE_URL, "", null);
60+
new MockGoogleJsonClient(transport, jsonFactory, HttpTesting.SIMPLE_URL, "", null, false);
6161
MockGoogleJsonClientRequest<String> request =
6262
new MockGoogleJsonClientRequest<String>(client, "GET", "foo", null, String.class);
6363
try {

0 commit comments

Comments
 (0)