emitHeader()

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);
  }