in lib/client_generator.js [117:176]
emitHeader(level) {
this.emitln(`// This file is auto-generated, don't edit it. Thanks.`, level);
this.emitln(`package ${this.ctx.package};`, level);
this.emitln();
if (this.ctx.extendParam.writeImport) {
this.emitln(`import com.aliyun.core.http.*;`, level);
this.emitln(`import ${this.ctx.package}.models.*;`, level);
this.emitln(`import darabonba.core.sse.SSEHttpResponseHandler;`, level);
this.emitln(`import darabonba.core.utils.*;`, level);
this.emitExternImport(level);
this.emitln();
this.emitln(`import java.util.concurrent.CompletableFuture;`, level);
this.emitln();
}
this.emitln();
this.emitln(`/**`, level);
this.emitln(` * <p>${this.ctx.description ? this.ctx.description : 'Main client'}.</p>`, level);
this.emitln(` */`, level);
if (!this.ctx.exec) {
this.emit(`public final class ${this.ctx.className}`, level);
} else {
this.emit(`public class ${this.ctx.className}`, level);
}
if (!this.ctx.exec && this.ctx.implements) {
this.emit(` implements ${this.ctx.implements}`);
}
this.emitln(` {`);
}
emitExternImport(level) {
const importList = [];
for (var item of this.ctx.usedExternModel.entries()) {
if (!importList.includes(this.ctx.imports[item[0]].package)) {
this.emitln(`import ${this.ctx.imports[item[0]].package}.*;`, level);
importList.push(this.ctx.imports[item[0]].package);
if (item[1].size > 0) {
this.emitln(`import ${this.ctx.imports[item[0]].package}.models.*;`, level);
}
}
}
}
emitEachType(ast, level) {
this.emit('protected final ', level);
this.visitType(ast.value);
this.emitln(` ${_name(ast.vid).substr(1)};`);
}
emitConstructor(ast, level) {
this.visitAnnotation(ast.annotation, level);
var className = this.ctx.className || 'DefaultAsyncClient';
this.emit(`protected ${className}`, level);
this.visitParams(ast.params, level);
this.emitln(' {');
if (ast.initBody) {
this.visitStmts(ast.initBody, false, level + 1);
}
this.emitln('this.REQUEST = TeaRequest.create().setProduct(product).setEndpointRule(endpointRule).setEndpointMap(endpointMap).setVersion(version);', level + 1);
this.emitln(`}`, level);
}