|
18 | 18 | import com.sun.codemodel.*; |
19 | 19 | import org.androidannotations.handler.BaseAnnotationHandler; |
20 | 20 | import org.androidannotations.helper.APTCodeModelHelper; |
| 21 | +import org.androidannotations.helper.CanonicalNameConstants; |
21 | 22 | import org.androidannotations.helper.RestAnnotationHelper; |
22 | 23 | import org.androidannotations.holder.RestHolder; |
23 | 24 | import org.androidannotations.model.AnnotationElements; |
@@ -137,17 +138,20 @@ protected JExpression getRequestEntity(ExecutableElement element, RestHolder hol |
137 | 138 | return restAnnotationHelper.declareHttpEntity(processHolder, methodBody, params, httpHeaders); |
138 | 139 | } |
139 | 140 |
|
140 | | - protected JExpression getResponseClass(Element element, RestHolder holder) { |
141 | | - return JExpr._null(); |
142 | | - } |
| 141 | + protected JExpression getResponseClass(Element element, RestHolder holder) { |
| 142 | + return restAnnotationHelper.getResponseClass(element, holder); |
| 143 | + } |
143 | 144 |
|
144 | 145 | protected JExpression getUrlVariables(Element element, RestHolder holder, JBlock methodBody, TreeMap<String, JVar> params) { |
145 | 146 | return restAnnotationHelper.declareUrlVariables((ExecutableElement) element, holder, methodBody, params); |
146 | 147 | } |
147 | 148 |
|
148 | | - protected JExpression addResultCallMethod(JExpression exchangeCall, JClass methodReturnClass) { |
149 | | - return exchangeCall; |
150 | | - } |
| 149 | + protected JExpression addResultCallMethod(JExpression exchangeCall, JClass methodReturnClass) { |
| 150 | + if (methodReturnClass != null && !methodReturnClass.fullName().startsWith(CanonicalNameConstants.RESPONSE_ENTITY)) { |
| 151 | + return JExpr.invoke(exchangeCall, "getBody"); |
| 152 | + } |
| 153 | + return exchangeCall; |
| 154 | + } |
151 | 155 |
|
152 | 156 | private JFieldRef setCookies(ExecutableElement executableElement, RestHolder restHolder, JBlock methodBody, JInvocation exchangeCall) { |
153 | 157 | String[] settingCookies = restAnnotationHelper.settingCookies(executableElement); |
|
0 commit comments