in lib/model_generator.js [113:178]
emitSetters(level, isOverride) {
assert.equal(this.ast.type, 'modelBody');
for (let i = 0; i < this.ast.nodes.length; i++) {
let node = this.ast.nodes[i];
const value = node.fieldValue;
const fieldName = avoidReserveName(_name(node.fieldName));
const realName = getAttr(node, 'name') || _name(node.fieldName);
const position = getAttr(node, 'position');
const shrink = getAttr(node, 'shrink');
this.emitln();
this.emitln('/**', level);
if (this.ctx.descriptionMap[realName]) {
for (let j = 0; j < this.ctx.descriptionMap[realName].length; j++) {
this.emitln(this.ctx.descriptionMap[realName][j], level);
}
} else {
this.emitln(` * ${realName}.`, level);
}
this.emitln(' */', level);
if (isOverride) {
this.emitln('@Override', level);
}
this.emit(`public Builder ${fieldName}(`, level);
this.visitFieldType(value, node, this.modelName);
this.emitln(`${fieldName}) {`);
if (position) {
let pos = position.split(',');
for (let i = 0; i < pos.length; i++) {
if (shrink) {
this.emitln(`String ${fieldName}Shrink = shrink(${fieldName}, "${realName}", "${shrink}");`, level + 1);
this.emitln(`this.put${pos[i]}Parameter("${realName}", ${fieldName}Shrink);`, level + 1);
} else {
this.emitln(`this.put${pos[i]}Parameter("${realName}", ${fieldName});`, level + 1);
}
}
}
this.emitln(`this.${fieldName} = ${fieldName};`, level + 1);
this.emitln(`return this;`, level + 1);
this.emitln(`}`, level);
if (value.fieldType && value.fieldType.idType && value.fieldType.idType === 'enum') {
this.emitln();
this.emitln('/**', level);
if (this.ctx.descriptionMap[realName]) {
for (let j = 0; j < this.ctx.descriptionMap[realName].length; j++) {
this.emitln(this.ctx.descriptionMap[realName][j], level);
}
} else {
this.emitln(` * ${realName}.`, level);
}
this.emitln(' */', level);
if (isOverride) {
this.emitln('@Override', level);
}
this.emit(`public Builder ${fieldName}(`, level);
this.visitFieldType(value, node, this.modelName, true);
this.emitln(`${fieldName}) {`);
if (position) {
this.emitln(`this.put${position}Parameter("${realName}", ${fieldName}.getValue());`, level + 1);
}
this.emitln(`this.${fieldName} = ${fieldName}.getValue();`, level + 1);
this.emitln(`return this;`, level + 1);
this.emitln(`}`, level);
}
}
}