Skip to content

Commit b3ca678

Browse files
committed
Merge branch from deathlord87 : Put and Delete return
2 parents a53eabc + 9a6c878 commit b3ca678

9 files changed

Lines changed: 36 additions & 51 deletions

File tree

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/rest/DeleteHandler.java‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package org.androidannotations.handler.rest;
1717

1818
import org.androidannotations.annotations.rest.Delete;
19-
import org.androidannotations.handler.rest.RestMethodHandler;
2019
import org.androidannotations.model.AnnotationElements;
2120
import org.androidannotations.process.IsValid;
2221

@@ -34,10 +33,10 @@ public DeleteHandler(ProcessingEnvironment processingEnvironment) {
3433
public void validate(Element element, AnnotationElements validatedElements, IsValid valid) {
3534
super.validate(element, validatedElements, valid);
3635

37-
validatorHelper.returnTypeIsVoid((ExecutableElement) element, valid);
36+
validatorHelper.doesNotReturnPrimitive((ExecutableElement) element, valid);
3837

39-
restAnnotationHelper.urlVariableNamesExistInParametersAndHasNoOneMoreParameter((ExecutableElement) element, valid);
40-
}
38+
restAnnotationHelper.urlVariableNamesExistInParametersAndHasOnlyOneMoreParameter((ExecutableElement) element, valid);
39+
}
4140

4241
@Override
4342
protected String getUrlSuffix(Element element) {

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/rest/GetHandler.java‎

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,9 @@
2121
import javax.lang.model.element.ExecutableElement;
2222

2323
import org.androidannotations.annotations.rest.Get;
24-
import org.androidannotations.helper.CanonicalNameConstants;
25-
import org.androidannotations.holder.RestHolder;
2624
import org.androidannotations.model.AnnotationElements;
2725
import org.androidannotations.process.IsValid;
2826

29-
import com.sun.codemodel.JClass;
30-
import com.sun.codemodel.JExpr;
31-
import com.sun.codemodel.JExpression;
32-
3327
public class GetHandler extends RestMethodHandler {
3428

3529
public GetHandler(ProcessingEnvironment processingEnvironment) {
@@ -50,15 +44,4 @@ protected String getUrlSuffix(Element element) {
5044
Get annotation = element.getAnnotation(Get.class);
5145
return annotation.value();
5246
}
53-
54-
protected JExpression getResponseClass(Element element, RestHolder holder) {
55-
return restAnnotationHelper.getResponseClass(element, holder);
56-
}
57-
58-
protected JExpression addResultCallMethod(JExpression exchangeCall, JClass methodReturnClass) {
59-
if (methodReturnClass != null && !methodReturnClass.fullName().startsWith(CanonicalNameConstants.RESPONSE_ENTITY)) {
60-
return JExpr.invoke(exchangeCall, "getBody");
61-
}
62-
return exchangeCall;
63-
}
6447
}

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/rest/HeadHandler.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.sun.codemodel.JExpr;
2020
import com.sun.codemodel.JExpression;
2121
import org.androidannotations.annotations.rest.Head;
22+
import org.androidannotations.holder.RestHolder;
2223
import org.androidannotations.model.AnnotationElements;
2324
import org.androidannotations.process.IsValid;
2425

@@ -47,6 +48,11 @@ protected String getUrlSuffix(Element element) {
4748
return annotation.value();
4849
}
4950

51+
@Override
52+
protected JExpression getResponseClass(Element element, RestHolder holder) {
53+
return JExpr._null();
54+
}
55+
5056
@Override
5157
protected JExpression addResultCallMethod(JExpression exchangeCall, JClass methodReturnClass) {
5258
return JExpr.invoke(exchangeCall, "getHeaders");

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/rest/OptionsHandler.java‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
package org.androidannotations.handler.rest;
1717

1818
import com.sun.codemodel.JClass;
19+
import com.sun.codemodel.JExpr;
1920
import com.sun.codemodel.JExpression;
2021
import org.androidannotations.annotations.rest.Options;
22+
import org.androidannotations.holder.RestHolder;
2123
import org.androidannotations.model.AnnotationElements;
2224
import org.androidannotations.process.IsValid;
2325

@@ -46,6 +48,11 @@ protected String getUrlSuffix(Element element) {
4648
return annotation.value();
4749
}
4850

51+
@Override
52+
protected JExpression getResponseClass(Element element, RestHolder holder) {
53+
return JExpr._null();
54+
}
55+
4956
@Override
5057
protected JExpression addResultCallMethod(JExpression exchangeCall, JClass methodReturnClass) {
5158
return exchangeCall.invoke("getHeaders").invoke("getAllow");

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/rest/PostHandler.java‎

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,9 @@
2020
import javax.lang.model.element.ExecutableElement;
2121

2222
import org.androidannotations.annotations.rest.Post;
23-
import org.androidannotations.helper.CanonicalNameConstants;
24-
import org.androidannotations.holder.RestHolder;
2523
import org.androidannotations.model.AnnotationElements;
2624
import org.androidannotations.process.IsValid;
2725

28-
import com.sun.codemodel.JClass;
29-
import com.sun.codemodel.JExpr;
30-
import com.sun.codemodel.JExpression;
31-
3226
public class PostHandler extends RestMethodHandler {
3327

3428
public PostHandler(ProcessingEnvironment processingEnvironment) {
@@ -49,15 +43,4 @@ protected String getUrlSuffix(Element element) {
4943
Post annotation = element.getAnnotation(Post.class);
5044
return annotation.value();
5145
}
52-
53-
protected JExpression getResponseClass(Element element, RestHolder holder) {
54-
return restAnnotationHelper.getResponseClass(element, holder);
55-
}
56-
57-
protected JExpression addResultCallMethod(JExpression exchangeCall, JClass methodReturnClass) {
58-
if (methodReturnClass != null && !methodReturnClass.fullName().startsWith(CanonicalNameConstants.RESPONSE_ENTITY)) {
59-
return JExpr.invoke(exchangeCall, "getBody");
60-
}
61-
return exchangeCall;
62-
}
6346
}

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/rest/PutHandler.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public PutHandler(ProcessingEnvironment processingEnvironment) {
3333
public void validate(Element element, AnnotationElements validatedElements, IsValid valid) {
3434
super.validate(element, validatedElements, valid);
3535

36-
validatorHelper.returnTypeIsVoid((ExecutableElement) element, valid);
36+
validatorHelper.doesNotReturnPrimitive((ExecutableElement) element, valid);
3737

3838
restAnnotationHelper.urlVariableNamesExistInParametersAndHasOnlyOneMoreParameter((ExecutableElement) element, valid);
3939
}

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/handler/rest/RestMethodHandler.java‎

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.sun.codemodel.*;
1919
import org.androidannotations.handler.BaseAnnotationHandler;
2020
import org.androidannotations.helper.APTCodeModelHelper;
21+
import org.androidannotations.helper.CanonicalNameConstants;
2122
import org.androidannotations.helper.RestAnnotationHelper;
2223
import org.androidannotations.holder.RestHolder;
2324
import org.androidannotations.model.AnnotationElements;
@@ -137,17 +138,20 @@ protected JExpression getRequestEntity(ExecutableElement element, RestHolder hol
137138
return restAnnotationHelper.declareHttpEntity(processHolder, methodBody, params, httpHeaders);
138139
}
139140

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+
}
143144

144145
protected JExpression getUrlVariables(Element element, RestHolder holder, JBlock methodBody, TreeMap<String, JVar> params) {
145146
return restAnnotationHelper.declareUrlVariables((ExecutableElement) element, holder, methodBody, params);
146147
}
147148

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+
}
151155

152156
private JFieldRef setCookies(ExecutableElement executableElement, RestHolder restHolder, JBlock methodBody, JInvocation exchangeCall) {
153157
String[] settingCookies = restAnnotationHelper.settingCookies(executableElement);

‎AndroidAnnotations/androidannotations/src/test/java/org/androidannotations/rest/RestTest.java‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,21 +46,18 @@ public void client_no_internet_permission_does_not_compile() throws IOException
4646
@Test
4747
public void client_with_return_type() throws IOException {
4848
CompileResult result = compileFiles(ClientWithResponseEntity.class);
49-
assertCompilationErrorOn(ClientWithResponseEntity.class, "@Put", result);
50-
assertCompilationErrorOn(ClientWithResponseEntity.class, "@Delete", result);
5149
assertCompilationErrorOn(ClientWithResponseEntity.class, "@Options", result);
5250
assertCompilationErrorOn(ClientWithResponseEntity.class, "@Head", result);
53-
assertCompilationErrorCount(4, result);
51+
assertCompilationErrorCount(2, result);
5452
}
5553

5654
@Test
5755
public void client_with_request_entity() throws IOException {
5856
CompileResult result = compileFiles(ClientWithRequestEntity.class);
59-
assertCompilationErrorOn(ClientWithRequestEntity.class, "@Delete", result);
6057
assertCompilationErrorOn(ClientWithRequestEntity.class, "@Get", result);
6158
assertCompilationErrorOn(ClientWithRequestEntity.class, "@Head", result);
6259
assertCompilationErrorOn(ClientWithRequestEntity.class, "@Options", result);
63-
assertCompilationErrorCount(4, result);
60+
assertCompilationErrorCount(3, result);
6461
}
6562

6663
@Test

‎AndroidAnnotations/functional-test-1-5/src/main/java/org/androidannotations/test15/rest/MyService.java‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,16 +191,22 @@ ResponseEntity<Event[][]> getEventsArrayOfArrays2(String location, int year)
191191

192192
@Put("/events/{id}")
193193
void updateEvent(Event event, int id);
194-
194+
195195
@Put("/events/{date}")
196196
void updateEvent(long date);
197197

198+
@Put("/events/{date}")
199+
Event updateEventWithResponse(long date);
200+
198201
// *** DELETE ***
199202

200203
// url variables are mapped to method parameter names.
201204
@Delete("/events/{id}")
202205
void removeEvent(long id);
203206

207+
@Put("/events/{id}")
208+
Event removeEventWithRespons(long id);
209+
204210
// *** HEAD ***
205211

206212
@Head("/events/{year}/{location}")

0 commit comments

Comments
 (0)