public void generate() { if (resourceMethod.getHttpMethod() != null) { final JaxrsResourceMethodParameters jaxrsParams = resourceMethod.getParameters(); methodBlock.append(generateUrl(jaxrsParams)); methodBlock.append(generateRequestBuilder()); methodBlock.append(generateHeaders(jaxrsParams)); final List<Class<?>> interceptors = interceptorProvider.getInterceptors(remote, resourceMethod.getMethod()); if (!interceptors.isEmpty()) { methodBlock.append(generateInterceptorLogic(interceptors)); } else { methodBlock.append(generateRequest()); } } generateReturnStatement(); }
pathParam = encodePath(pathParam); for (final String matrixParamName : params.getMatrixParameters().keySet()) { pathValue = pathValue.invoke("concat", ";" + matrixParamName + "=") .invoke("concat", encodePath(marshal(params.getMatrixParameter(matrixParamName)))); if (isListOrSet(queryParamType)) { final MetaClass paramType = assertValidCollectionParam(queryParamType, queryParamName, QueryParam.class); final ContextualStatementBuilder listParam = (queryParam instanceof Parameter) ? Stmt.loadVariable(((Parameter) queryParam).getName()) : Stmt.nestedCall(queryParam); .append(Stmt.loadVariable("url").invoke(APPEND, "&")).finish()) .append(Stmt.loadVariable("url").invoke(APPEND, queryParamName).invoke(APPEND, "=") .invoke(APPEND, encodeQuery(marshal(paramType, Stmt.loadVariable("p"))))) .finish() ); .invoke(APPEND, encodeQuery(marshal(queryParam)));
resourceMethod.getMethod(), generateInterceptedRequest(), interceptors) .publicOverridesMethod("setParameters", Parameter.of(Object[].class, "parameters")) .append(new StringStatement("super.setParameters(parameters)")) .append(generateUrl(jaxrsParams)) .append(generateRequestBuilder()) .append(generateHeaders(jaxrsParams)) .append(new StringStatement("setRequestBuilder(requestBuilder)")) .finish()
if (ProxyUtil.shouldProxyMethod(method)) { JaxrsResourceMethod resourceMethod = new JaxrsResourceMethod(method, headers, rootResourcePath); new JaxrsProxyMethodGenerator(remote, classBuilder, resourceMethod, interceptorProvider, context).generate();
/** * Generates the call to * {@link RequestBuilder#sendRequest(String, com.google.gwt.http.client.RequestCallback)} for * non-interceptable methods. * * @return statement representing the request */ private Statement generateRequest() { return generateRequest(Stmt.loadVariable("requestBuilder"), Stmt.loadVariable("this")); }
/** * Generates the call to * {@link RequestBuilder#sendRequest(String, com.google.gwt.http.client.RequestCallback)} for * interceptable methods. * * @return statement representing the request */ private Statement generateInterceptedRequest() { return generateRequest( Stmt.nestedCall(new StringStatement("getRequestBuilder()", MetaClassFactory.get(RequestBuilder.class))), Stmt.loadStatic(declaringClass, "this")); }