Skip to content

Commit fbfb2e5

Browse files
committed
Merge pull request androidannotations#1736 from simopete/1735_ResponseEntity_generation_error
Fixes RestTemplate generation with ResponseEntity as return type
2 parents 8f423e3 + 1a10f31 commit fbfb2e5

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

  • AndroidAnnotations/androidannotations-rest-spring/rest-spring/src/main/java/org/androidannotations/rest/spring/helper

AndroidAnnotations/androidannotations-rest-spring/rest-spring/src/main/java/org/androidannotations/rest/spring/helper/RestAnnotationHelper.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -367,9 +367,19 @@ public IJExpression getResponseClass(Element element, RestHolder holder) {
367367
IJExpression responseClassExpr = nullCastedToNarrowedClass(holder);
368368
TypeMirror returnType = executableElement.getReturnType();
369369
if (returnType.getKind() != TypeKind.VOID) {
370-
if (getElementUtils().getTypeElement(RestSpringClasses.PARAMETERIZED_TYPE_REFERENCE) != null && !returnType.toString().startsWith(RestSpringClasses.RESPONSE_ENTITY)
371-
&& checkIfParameterizedTypeReferenceShouldBeUsed(returnType)) {
372-
return createParameterizedTypeReferenceAnonymousSubclassInstance(returnType);
370+
if (getElementUtils().getTypeElement(RestSpringClasses.PARAMETERIZED_TYPE_REFERENCE) != null) {
371+
if (returnType.toString().startsWith(RestSpringClasses.RESPONSE_ENTITY)) {
372+
373+
List<? extends TypeMirror> typeArguments = ((DeclaredType) returnType).getTypeArguments();
374+
375+
if (!typeArguments.isEmpty()) {
376+
returnType = typeArguments.get(0);
377+
}
378+
}
379+
380+
if (checkIfParameterizedTypeReferenceShouldBeUsed(returnType)) {
381+
return createParameterizedTypeReferenceAnonymousSubclassInstance(returnType);
382+
}
373383
}
374384

375385
AbstractJClass responseClass = retrieveResponseClass(returnType, holder);

0 commit comments

Comments
 (0)