in lib/generator.js [1337:1385]
visitEcxceptionBody(ast, level) {
assert.equal(ast.type, 'exceptionBody');
let node;
for (let i = 0; i < ast.nodes.length; i++) {
node = ast.nodes[i];
const fieldName = _name(node.fieldName);
// TODO document gen
this.emit('/**\n', level);
this.emit('* @var ', level);
this.visitFieldType(node.fieldValue, level, fieldName);
this.emit('\n');
this.emit('*/\n', level);
this.emit(`${_filedsAccess(fieldName)} $${fieldName};\n`, level);
}
this.emit('\n');
this.emit('public function __construct($map)\n', level);
this.emit('{\n', level);
this.emit('parent::__construct($map);\n', level + 1);
for (let i = 0; i < ast.nodes.length; i++) {
node = ast.nodes[i];
this.emit(`$this->${_name(node.fieldName)} = $map['${_name(node.fieldName)}'];\n`, level + 1);
}
this.emit('}\n\n', level);
for (let i = 0; i < ast.nodes.length; i++) {
node = ast.nodes[i];
// TODO document gen
this.emit('/**\n', level);
this.emit('* @return ', level);
this.visitFieldType(node.fieldValue, level, _name(node.fieldName));
this.emit('\n');
this.emit('*/\n', level);
this.emit(`public function get${_upperFirst(_name(node.fieldName))}()\n`, level);
this.emit('{\n', level);
this.emit(`return $this->${_name(node.fieldName)};\n`, level + 1);
this.emit('}\n', level);
}
if (node) {
//find the last node's back comment
let comments = DSL.comment.getBetweenComments(this.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.comments, ast.tokenRange[0], ast.tokenRange[1]);
this.visitComments(comments, level);
}
}