Skip to content

Commit 2028ad3

Browse files
committed
Genericize CreatubblesRequest
1 parent c57696a commit 2028ad3

13 files changed

Lines changed: 38 additions & 49 deletions

src/main/java/com/creatubbles/api/core/CreatubblesRequest.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import java.util.concurrent.ExecutionException;
1414
import java.util.concurrent.Future;
1515

16-
public abstract class CreatubblesRequest {
16+
public abstract class CreatubblesRequest<T extends CreatubblesResponse> {
1717
private String endPoint, acceptLanguage, xSource, data;
1818
private HttpMethod httpMethod;
1919
private Map<String, String> urlParameters;
@@ -49,7 +49,7 @@ public String getEndPoint() {
4949
return endPoint;
5050
}
5151

52-
public CreatubblesRequest setEndPoint(String endPoint) {
52+
public CreatubblesRequest<T> setEndPoint(String endPoint) {
5353
this.endPoint = endPoint;
5454
return this;
5555
}
@@ -58,7 +58,7 @@ public HttpMethod getHttpMethod() {
5858
return httpMethod;
5959
}
6060

61-
public CreatubblesRequest setHttpMethod(HttpMethod httpMethod) {
61+
public CreatubblesRequest<T> setHttpMethod(HttpMethod httpMethod) {
6262
this.httpMethod = httpMethod;
6363
return this;
6464
}
@@ -71,7 +71,7 @@ public String getAcceptLanguage() {
7171
return acceptLanguage;
7272
}
7373

74-
public CreatubblesRequest setAcceptLanguage(String acceptLanguage) {
74+
public CreatubblesRequest<T> setAcceptLanguage(String acceptLanguage) {
7575
this.acceptLanguage = acceptLanguage;
7676
return this;
7777
}
@@ -80,7 +80,7 @@ public String getXSource() {
8080
return xSource;
8181
}
8282

83-
public CreatubblesRequest setXSource(String xSource) {
83+
public CreatubblesRequest<T> setXSource(String xSource) {
8484
this.xSource = xSource;
8585
return this;
8686
}
@@ -89,17 +89,17 @@ public String getData() {
8989
return data;
9090
}
9191

92-
public CreatubblesRequest setData(String data) {
92+
public CreatubblesRequest<T> setData(String data) {
9393
this.data = data;
9494
return this;
9595
}
9696

97-
public CreatubblesRequest setUrlParameter(String key, String value) {
97+
public CreatubblesRequest<T> setUrlParameter(String key, String value) {
9898
this.urlParameters.put(key, value);
9999
return this;
100100
}
101101

102-
public abstract Class<? extends CreatubblesResponse> getResponseClass();
102+
public abstract Class<? extends T> getResponseClass();
103103

104104
private void resetResponse() {
105105
if (response != null || futureResponse != null) {
@@ -132,17 +132,17 @@ public Response getRawResponse() {
132132
return response;
133133
}
134134

135-
public CreatubblesResponse getResponse() {
135+
public T getResponse() {
136136
Response response = getRawResponse();
137-
Class<?> responseClass = getResponseClass();
137+
Class<? extends T> responseClass = getResponseClass();
138138
if (response != null && responseClass != null) {
139-
return CreatubblesAPI.GSON.fromJson(response.readEntity(String.class), getResponseClass());
139+
return CreatubblesAPI.GSON.fromJson(response.readEntity(String.class), responseClass);
140140
}
141141

142142
return null;
143143
}
144144

145-
public CreatubblesRequest execute() {
145+
public CreatubblesRequest<T> execute() {
146146
resetResponse();
147147
String url = CreatubblesAPI.buildURL(endPoint);
148148

@@ -177,7 +177,7 @@ public CreatubblesRequest execute() {
177177
return this;
178178
}
179179

180-
public CreatubblesRequest async() {
180+
public CreatubblesRequest<T> async() {
181181
resetResponse();
182182
String url = CreatubblesAPI.buildURL(endPoint);
183183

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
11
package com.creatubbles.api.request.auth;
22

33
import com.creatubbles.api.core.CreatubblesRequest;
4-
import com.creatubbles.api.core.CreatubblesResponse;
54
import com.creatubbles.api.response.auth.SignInResponse;
65
import com.creatubbles.api.util.EndPoints;
76
import com.creatubbles.api.util.HttpMethod;
87

9-
public class SignInRequest extends CreatubblesRequest {
8+
public class SignInRequest extends CreatubblesRequest<SignInResponse> {
109

1110
public SignInRequest(String email, String password) {
1211
super(EndPoints.SIGN_IN, HttpMethod.POST);
1312
setData("{\"user\" : { \"email\" : \"" + email + "\", \"password\" : \"" + password + "\" }}");
1413
}
1514

1615
@Override
17-
public Class<? extends CreatubblesResponse> getResponseClass() {
16+
public Class<? extends SignInResponse> getResponseClass() {
1817
return SignInResponse.class;
1918
}
2019
}

src/main/java/com/creatubbles/api/request/auth/SignUpRequest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22

33
import com.creatubbles.api.CreatubblesAPI;
44
import com.creatubbles.api.core.CreatubblesRequest;
5-
import com.creatubbles.api.core.CreatubblesResponse;
65
import com.creatubbles.api.core.User;
76
import com.creatubbles.api.response.auth.SignUpResponse;
87
import com.creatubbles.api.util.EndPoints;
98
import com.creatubbles.api.util.HttpMethod;
109
import com.google.gson.JsonObject;
1110

12-
public class SignUpRequest extends CreatubblesRequest {
11+
public class SignUpRequest extends CreatubblesRequest<SignUpResponse> {
1312

1413
public SignUpRequest(String email, String password, String country) {
1514
super(EndPoints.SIGN_UP, HttpMethod.POST);
@@ -34,7 +33,7 @@ public SignUpRequest(User user) {
3433
}
3534

3635
@Override
37-
public Class<? extends CreatubblesResponse> getResponseClass() {
36+
public Class<? extends SignUpResponse> getResponseClass() {
3837
return SignUpResponse.class;
3938
}
4039
}

src/main/java/com/creatubbles/api/request/creation/CreationRequest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
package com.creatubbles.api.request.creation;
22

33
import com.creatubbles.api.core.CreatubblesRequest;
4-
import com.creatubbles.api.core.CreatubblesResponse;
54
import com.creatubbles.api.response.CreationResponse;
65
import com.creatubbles.api.util.EndPoints;
76
import com.creatubbles.api.util.HttpMethod;
87

9-
public class CreationRequest extends CreatubblesRequest {
8+
public class CreationRequest extends CreatubblesRequest<CreationResponse> {
109

1110
public CreationRequest() {
1211
this("me", null);
@@ -21,7 +20,7 @@ public CreationRequest(String id, String accessToken) {
2120
}
2221

2322
@Override
24-
public Class<? extends CreatubblesResponse> getResponseClass() {
23+
public Class<? extends CreationResponse> getResponseClass() {
2524
return CreationResponse.class;
2625
}
2726
}

src/main/java/com/creatubbles/api/request/creator/CreateCreatorRequest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,19 @@
33
import com.creatubbles.api.CreatubblesAPI;
44
import com.creatubbles.api.core.Creator;
55
import com.creatubbles.api.core.CreatubblesRequest;
6-
import com.creatubbles.api.core.CreatubblesResponse;
76
import com.creatubbles.api.response.creator.CreateCreatorResponse;
87
import com.creatubbles.api.util.EndPoints;
98
import com.creatubbles.api.util.HttpMethod;
109

11-
public class CreateCreatorRequest extends CreatubblesRequest {
10+
public class CreateCreatorRequest extends CreatubblesRequest<CreateCreatorResponse> {
1211

1312
public CreateCreatorRequest(String accessToken, Creator creator) {
1413
super(String.format(EndPoints.USERS_CREATORS, "me"), HttpMethod.POST, accessToken);
1514
setData(CreatubblesAPI.GSON.toJson(creator));
1615
}
1716

1817
@Override
19-
public Class<? extends CreatubblesResponse> getResponseClass() {
18+
public Class<? extends CreateCreatorResponse> getResponseClass() {
2019
return CreateCreatorResponse.class;
2120
}
2221
}

src/main/java/com/creatubbles/api/request/creator/CreatorsFollowersRequest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
package com.creatubbles.api.request.creator;
22

33
import com.creatubbles.api.core.CreatubblesRequest;
4-
import com.creatubbles.api.core.CreatubblesResponse;
54
import com.creatubbles.api.response.creator.CreatorsFollowersResponse;
65
import com.creatubbles.api.util.EndPoints;
76
import com.creatubbles.api.util.HttpMethod;
87

9-
public class CreatorsFollowersRequest extends CreatubblesRequest {
8+
public class CreatorsFollowersRequest extends CreatubblesRequest<CreatorsFollowersResponse> {
109

1110
public CreatorsFollowersRequest(String id) {
1211
this(id, 1);
@@ -18,7 +17,7 @@ public CreatorsFollowersRequest(String id, int page) {
1817
}
1918

2019
@Override
21-
public Class<? extends CreatubblesResponse> getResponseClass() {
20+
public Class<? extends CreatorsFollowersResponse> getResponseClass() {
2221
return CreatorsFollowersResponse.class;
2322
}
2423
}

src/main/java/com/creatubbles/api/request/creator/CreatorsFollowingUsersRequest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package com.creatubbles.api.request.creator;
22

33
import com.creatubbles.api.core.CreatubblesRequest;
4-
import com.creatubbles.api.core.CreatubblesResponse;
54
import com.creatubbles.api.response.creator.CreatorsFollowingUsersResponse;
65
import com.creatubbles.api.util.EndPoints;
76
import com.creatubbles.api.util.HttpMethod;
87

98

10-
public class CreatorsFollowingUsersRequest extends CreatubblesRequest {
9+
public class CreatorsFollowingUsersRequest extends CreatubblesRequest<CreatorsFollowingUsersResponse> {
1110

1211
public CreatorsFollowingUsersRequest(String id) {
1312
this(id, 1);
@@ -19,7 +18,7 @@ public CreatorsFollowingUsersRequest(String id, int page) {
1918
}
2019

2120
@Override
22-
public Class<? extends CreatubblesResponse> getResponseClass() {
21+
public Class<? extends CreatorsFollowingUsersResponse> getResponseClass() {
2322
return CreatorsFollowingUsersResponse.class;
2423
}
2524
}

src/main/java/com/creatubbles/api/request/creator/UsersCreatorsRequest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
package com.creatubbles.api.request.creator;
22

33
import com.creatubbles.api.core.CreatubblesRequest;
4-
import com.creatubbles.api.core.CreatubblesResponse;
54
import com.creatubbles.api.response.creator.UsersCreatorsResponse;
65
import com.creatubbles.api.util.EndPoints;
76
import com.creatubbles.api.util.HttpMethod;
87

9-
public class UsersCreatorsRequest extends CreatubblesRequest {
8+
public class UsersCreatorsRequest extends CreatubblesRequest<UsersCreatorsResponse> {
109

1110
public UsersCreatorsRequest() {
1211
this("me", null);
@@ -43,7 +42,7 @@ public void setPageNumber(int pageNumber) {
4342
}
4443

4544
@Override
46-
public Class<? extends CreatubblesResponse> getResponseClass() {
45+
public Class<? extends UsersCreatorsResponse> getResponseClass() {
4746
return UsersCreatorsResponse.class;
4847
}
4948
}

src/main/java/com/creatubbles/api/request/gallery/CreateUserGalleryRequest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,20 @@
22

33
import com.creatubbles.api.CreatubblesAPI;
44
import com.creatubbles.api.core.CreatubblesRequest;
5-
import com.creatubbles.api.core.CreatubblesResponse;
65
import com.creatubbles.api.core.Gallery;
76
import com.creatubbles.api.response.gallery.CreateUserGalleryResponse;
87
import com.creatubbles.api.util.EndPoints;
98
import com.creatubbles.api.util.HttpMethod;
109

11-
public class CreateUserGalleryRequest extends CreatubblesRequest {
10+
public class CreateUserGalleryRequest extends CreatubblesRequest<CreateUserGalleryResponse> {
1211

1312
public CreateUserGalleryRequest(Gallery gallery, String accessToken) {
1413
super(String.format(EndPoints.USERS_GALLERIES, "me"), HttpMethod.POST, accessToken);
1514
setData(CreatubblesAPI.GSON.toJson(gallery));
1615
}
1716

1817
@Override
19-
public Class<? extends CreatubblesResponse> getResponseClass() {
18+
public Class<? extends CreateUserGalleryResponse> getResponseClass() {
2019
return CreateUserGalleryResponse.class;
2120
}
2221
}
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
package com.creatubbles.api.request.gallery;
22

33
import com.creatubbles.api.core.CreatubblesRequest;
4-
import com.creatubbles.api.core.CreatubblesResponse;
54
import com.creatubbles.api.response.gallery.UserGalleryResponse;
65
import com.creatubbles.api.util.EndPoints;
76
import com.creatubbles.api.util.HttpMethod;
87

9-
public class UserGalleryRequest extends CreatubblesRequest {
8+
public class UserGalleryRequest extends CreatubblesRequest<UserGalleryResponse> {
109

1110
public UserGalleryRequest(String id) {
1211
this(id, null);
@@ -17,7 +16,7 @@ public UserGalleryRequest(String id, String accessToken) {
1716
}
1817

1918
@Override
20-
public Class<? extends CreatubblesResponse> getResponseClass() {
19+
public Class<? extends UserGalleryResponse> getResponseClass() {
2120
return UserGalleryResponse.class;
2221
}
2322
}

0 commit comments

Comments
 (0)