emitHeader()

in lib/iterator_generator.js [22:67]


  emitHeader(type, level) {
    this.emitln(`// This file is auto-generated, don't edit it. Thanks.`, level);
    this.emitln(`package ${this.ctx.package}.models;`, level);
    this.emitln();
    this.emitln(`import com.aliyun.core.utils.ParseUtil;`, level);
    let extendIterator;
    if (this.ast.iteratorStyle === SSE) {
      this.emitln(`import darabonba.core.sse.SSEResponseIterator;`, level);
      extendIterator = 'SSEResponseIterator';
    } else {
      this.emitln(`import darabonba.core.ResponseIterator;`, level);
      extendIterator = 'ResponseIterator';
    }
    this.emitln(`import darabonba.core.TeaModel;`, level);
    this.emitln(`import darabonba.core.utils.CommonUtil;`, level);
    this.emitln();
    this.emitln(`import java.util.*;`, level);
    this.emitln();
    this.emitln(`public class ${type}Iterator extends ${extendIterator}<${type}> {`, level);
    this.emitln();
  }

  emitConstructor(type, level) {
    this.emitln(`${type}Iterator() {`, level);
    this.emitln(`}`, level);
    this.emitln();
    this.emitln(`public static ${type}Iterator create() {`, level);
    this.emitln(`return new ${type}Iterator();`, level + 1);
    this.emitln(`}`, level);
  }

  emitIteratorBody(ast, type, level) {
    this.emitln(`@Override`, level);
    this.emitln(`protected ${type} toModel(String data) {`, level);
    if (ast.type === 'model') {
      this.emitln(`${type} result = ${type}.create();`, level + 1);
      this.emitln(`Map<String, Object> object = CommonUtil.assertAsMap(ParseUtil.parseJSON(data));`, level + 1);
      this.emitln(`TeaModel.toModel(object, result);`, level + 1);
      this.emitln(`return result;`, level + 1);
    } else {
      this.emitln(`return (${type}) TeaModel.confirmType(${type}.class, data);`, level + 1);
    }
    this.emitln(`}`, level);
  }

}