emitEnumBody()

in lib/enum_generator.js [36:74]


  emitEnumBody(ast, enumType, level) {
    assert.equal(ast.type, 'enumBody');
    let node;
    for (let i = 0; i < ast.nodes.length; i++) {
      node = ast.nodes[i];
      let comments = DSL.comment.getFrontComments(this.ctx.comments, node.tokenRange[0]);
      this.visitComments(comments, level);
      const fieldName = _name(node.fieldName);
      const value = getEnumAttr(node, 'value') || fieldName;
      const description = getEnumAttr(node, 'description');
      if (enumType === 'String') {
        this.emit(`${fieldName}("${value}"`, level);
      } else if (enumType === 'Number' || enumType === 'Integer') {
        this.emit(`${fieldName}(${value}`, level);
      } else if (enumType === 'Long') {
        this.emit(`${fieldName}(${value}L`, level);
      } else if (enumType === 'Float') {
        this.emit(`${fieldName}(${value}F`, level);
      } else if (enumType === 'Double') {
        this.emit(`${fieldName}(${value}D`, level);
      }
      this.emit(`, "${description}")`);
      this.emitln(`,`);
      this.emitln();
    }
    this.emitln(`UNKNOWN_VALUE(null, "UNKNOWN_VALUE");`, level);
    this.emitln();
    if (node) {
      //find the last node's back comment
      let comments = DSL.comment.getBetweenComments(this.ctx.comments, node.tokenRange[0], ast.tokenRange[1]);
      this.visitComments(comments, level);
    }

    if (ast.nodes.length === 0) {
      //empty block's comment
      let comments = DSL.comment.getBetweenComments(this.ctx.comments, ast.tokenRange[0], ast.tokenRange[1]);
      this.visitComments(comments, level);
    }
  }