Skip to content

Commit 280485a

Browse files
author
Javen
committed
Refactoring: normalize result.fromResponse() method.
1 parent 0b38d80 commit 280485a

File tree

3 files changed

+25
-13
lines changed

3 files changed

+25
-13
lines changed

src/cn/jpush/api/common/BaseResult.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,28 @@ public boolean isResultOK() {
2828
return RESPONSE_OK == responseWrapper.responseCode;
2929
}
3030

31+
public static <T extends BaseResult> T fromResponse(
32+
ResponseWrapper responseWrapper, Class<T> clazz) {
33+
T result = null;
34+
35+
if (responseWrapper.isServerResponse()) {
36+
result = _gson.fromJson(responseWrapper.responseContent, clazz);
37+
} else {
38+
try {
39+
result = clazz.newInstance();
40+
} catch (InstantiationException e) {
41+
e.printStackTrace();
42+
} catch (IllegalAccessException e) {
43+
e.printStackTrace();
44+
}
45+
}
46+
47+
result.setResponseWrapper(responseWrapper);
48+
49+
return result;
50+
}
51+
52+
3153
@Override
3254
public int getRateLimitQuota() {
3355
if (null != responseWrapper) {

src/cn/jpush/api/report/ReportClient.java

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

66
import cn.jpush.api.common.APIConnectionException;
77
import cn.jpush.api.common.APIRequestException;
8+
import cn.jpush.api.common.BaseResult;
89
import cn.jpush.api.common.HttpProxy;
910
import cn.jpush.api.common.IHttpClient;
1011
import cn.jpush.api.common.NativeHttpClient;
@@ -75,9 +76,9 @@ public UsersResult getUsers(TimeUnit timeUnit, String start, int duration)
7576
+ "&start=" + startEncoded + "&duration=" + duration;
7677
ResponseWrapper response = _httpClient.sendGet(url);
7778

78-
return UsersResult.fromResponse(response);
79+
return BaseResult.fromResponse(response, UsersResult.class);
7980
}
80-
81+
8182

8283
private final static Pattern MSGID_PATTERNS = Pattern.compile("[^0-9, ]");
8384

src/cn/jpush/api/report/UsersResult.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import java.util.List;
55

66
import cn.jpush.api.common.BaseResult;
7-
import cn.jpush.api.common.ResponseWrapper;
87
import cn.jpush.api.common.TimeUnit;
98

109
import com.google.gson.annotations.Expose;
@@ -36,16 +35,6 @@ public static class Ios {
3635
@Expose public int active;
3736
}
3837

39-
public static UsersResult fromResponse(ResponseWrapper responseWrapper) {
40-
UsersResult result = new UsersResult();
41-
if (responseWrapper.isServerResponse()) {
42-
result = _gson.fromJson(responseWrapper.responseContent, UsersResult.class);
43-
}
44-
45-
result.setResponseWrapper(responseWrapper);
46-
return result;
47-
}
48-
4938
}
5039

5140

0 commit comments

Comments
 (0)