|
17 | 17 |
|
18 | 18 | import static com.sun.codemodel.JExpr._new; |
19 | 19 | import static com.sun.codemodel.JExpr._this; |
| 20 | +import static com.sun.codemodel.JExpr.lit; |
20 | 21 | import static com.sun.codemodel.JMod.FINAL; |
21 | 22 | import static com.sun.codemodel.JMod.PUBLIC; |
22 | 23 | import static org.androidannotations.helper.CanonicalNameConstants.REST_TEMPLATE; |
|
34 | 35 | import org.androidannotations.process.ProcessHolder; |
35 | 36 |
|
36 | 37 | import com.sun.codemodel.ClassType; |
| 38 | +import com.sun.codemodel.JBlock; |
37 | 39 | import com.sun.codemodel.JClass; |
| 40 | +import com.sun.codemodel.JDefinedClass; |
38 | 41 | import com.sun.codemodel.JExpr; |
| 42 | +import com.sun.codemodel.JExpression; |
39 | 43 | import com.sun.codemodel.JFieldVar; |
40 | 44 | import com.sun.codemodel.JInvocation; |
41 | 45 | import com.sun.codemodel.JMethod; |
42 | 46 | import com.sun.codemodel.JMod; |
| 47 | +import com.sun.codemodel.JVar; |
43 | 48 |
|
44 | 49 | public class RestHolder extends BaseGeneratedClassHolder { |
45 | 50 |
|
@@ -78,6 +83,7 @@ private void implementMethods() { |
78 | 83 |
|
79 | 84 | // authentication |
80 | 85 | implementSetBasicAuth(methods); |
| 86 | + implementSetBearerAuth(methods); |
81 | 87 | implementSetAuthentication(methods); |
82 | 88 |
|
83 | 89 | // cookies and headers |
@@ -132,6 +138,26 @@ private void implementSetBasicAuth(List<ExecutableElement> methods) { |
132 | 138 | } |
133 | 139 | } |
134 | 140 |
|
| 141 | + private void implementSetBearerAuth(List<ExecutableElement> methods) { |
| 142 | + JMethod setBearerMethod = codeModelHelper.implementMethod(this, methods, "setBearerAuth", TypeKind.VOID.toString(), true, STRING); |
| 143 | + |
| 144 | + if (setBearerMethod != null) { |
| 145 | + JVar tokenParamVar = setBearerMethod.params().get(0); |
| 146 | + JExpression tokenExpr = lit("Bearer ").plus(tokenParamVar); |
| 147 | + |
| 148 | + JClass authClass = classes().HTTP_AUTHENTICATION; |
| 149 | + JDefinedClass anonymousHttpAuthClass = codeModel().anonymousClass(authClass); |
| 150 | + |
| 151 | + JMethod getHeaderValueMethod = anonymousHttpAuthClass.method(JMod.PUBLIC, String.class, "getHeaderValue"); |
| 152 | + getHeaderValueMethod.annotate(Override.class); |
| 153 | + JBlock getHeaderValueMethodBody = getHeaderValueMethod.body(); |
| 154 | + getHeaderValueMethodBody._return(tokenExpr); |
| 155 | + |
| 156 | + JBlock setBearerBody = setBearerMethod.body(); |
| 157 | + setBearerBody.assign(_this().ref(getAuthenticationField()), _new(anonymousHttpAuthClass)); |
| 158 | + } |
| 159 | + } |
| 160 | + |
135 | 161 | private void implementSetAuthentication(List<ExecutableElement> methods) { |
136 | 162 | JMethod setAuthMethod = codeModelHelper.implementMethod(this, methods, "setAuthentication", TypeKind.VOID.toString(), CanonicalNameConstants.HTTP_AUTHENTICATION); |
137 | 163 |
|
|
0 commit comments