in lib/common_generator.js [524:587]
visitReturn(ast, isAsync, level) {
assert.equal(ast.type, 'return');
let property = '';
if (ast.expr && ast.expr.left && ast.expr.left.propertyPath) {
property = ast.expr.left.propertyPath.pop();
}
if (ast.needCast &&
(_name(property) === '_do' || _name(property) === 'doAsyncRequestBody'
|| _name(property) === 'doRequestBody' || _name(property) === 'doResponseHandler')) {
const args = ast.expr.args;
this.emit(`TeaRequest teaRequest = REQUEST.copy()`, level);
this.emit('.setStyle(RequestStyle.');
this.emit(`${_string(args[0].value).toUpperCase()}`);
this.emit(').setAction("');
this.emit(`${_string(args[1].value)}`);
this.emit('").setMethod(HttpMethod.');
this.emit(`${_string(args[2].value).toUpperCase()}`);
this.emit(').setPathRegex("');
this.emit(`${_string(args[3].value)}`);
this.emit('").setBodyType(BodyType.');
this.emit(`${_string(args[4].value).toUpperCase()}`);
this.emit(').setBodyIsForm(');
this.emit(`${args[5].value}`);
if (typeof args[6].value.string !== 'undefined' && args[6].value.string !== '') {
this.emit(').setReqBodyType(BodyType.');
this.emit(`${_string(args[6].value).toUpperCase()}`);
}
this.emitln(`).formModel(${_name(args[7].id)});`);
if (args[8] && _name(args[8].id) === 'requestBody') {
this.emit(`ClientExecutionParams params = new ClientExecutionParams().withInput(${_name(args[7].id)}).withRequest(teaRequest).withRequestBody(${_name(args[8].id)}).withOutput(`, level);
} else if (args[8] && _name(args[8].id) === 'responseHandler') {
this.emit(`ClientExecutionParams params = new ClientExecutionParams().withInput(${_name(args[7].id)}).withRequest(teaRequest).withResponseHandler(${_name(args[8].id)}).withOutput(`, level);
} else {
this.emit(`ClientExecutionParams params = new ClientExecutionParams().withInput(${_name(args[7].id)}).withRequest(teaRequest).withOutput(`, level);
}
this.visitType(ast.expectedType);
this.emitln('.create());');
this.emit('return ', level);
var id = _name(ast.expr.left.id);
if (id.indexOf('@') > -1) {
id = `this.${id.substr(1)}`;
}
if (_name(property) === 'doResponseHandler') {
this.emitln(`${id}.execute(params)`);
this.emit(' .thenCompose((output) -> CompletableFuture.completedFuture(responseHandler.transform((', level);
this.visitType(ast.expectedType);
this.emit(')output)))');
} else {
this.emit(`${id}.execute(params)`);
}
if (!isAsync) {
this.emit(`.join()`);
}
this.emit(`;\n`);
return;
}
this.emit('return ', level);
if (!ast.expr) {
this.emit(';\n');
return;
}
this.visitExpr(ast.expr, level);
this.emit(';\n');
}