in lib/common_generator.js [733:872]
visitAnnotation(annotation, level) {
if (!annotation || !annotation.value) {
if (this.ast.modelName) {
const modelName = _name(this.ast.modelName);
this.emitln(`/**`, level);
this.emitln(` * `, level);
this.emitln(` * {@link ${this.ast.title ? this.ast.title : modelName}} extends {@link ${this.ctx.isRequestModel ? 'RequestModel' : 'TeaModel'}}`, level);
this.emitln(` *`, level);
this.emitln(` * <p>${this.ast.title ? this.ast.title : modelName}</p>`, level);
this.emitln(` */`, level);
}
return;
}
let comments = DSL.comment.getFrontComments(this.ctx.comments, annotation.index);
this.visitComments(comments, level);
var node = Annotation.parse(annotation.value);
var description = node.items.find((item) => {
return item.type === 'description';
});
var summary = node.items.find((item) => {
return item.type === 'summary';
});
var _return = node.items.find((item) => {
return item.type === 'return';
});
var deprecated = node.items.find((item) => {
return item.type === 'deprecated';
});
var params = node.items.filter((item) => {
return item.type === 'param';
}).map((item) => {
return {
name: item.name.id,
text: item.text.text.trimEnd()
};
});
var throws = node.items.filter((item) => {
return item.type === 'throws';
}).map((item) => {
return item.text.text.trimEnd();
});
let hasNextSection = false;
this.emitln(`/**`, level);
const descriptionText = description ? description.text.text : '';
const summaryText = summary ? summary.text.text : '';
const returnText = _return ? _return.text.text.trimEnd() : '';
if (summaryText !== '') {
if (hasNextSection) {
this.emitln(` * `, level);
}
this.emitln(` * <b>summary</b> : `, level);
const summaryTexts = md2Html(summaryText).trimEnd();
summaryTexts.split('\n').forEach((line) => {
this.emitln(` * ${line}`, level);
});
hasNextSection = true;
}
if (descriptionText !== '') {
this.emitln(` * <b>description</b> :`, level);
const descriptionTexts = md2Html(descriptionText).trimEnd();
descriptionTexts.split('\n').forEach((line) => {
this.emitln(` * ${line}`, level);
});
hasNextSection = true;
}
if (deprecated) {
if (hasNextSection) {
this.emitln(` * `, level);
}
const deprecatedText = deprecated.text.text.trimEnd();
this.emit(` * @deprecated `, level);
deprecatedText.split('\n').forEach((line, index) => {
if (index === 0) {
this.emitln(`${line}`);
} else {
this.emitln(` * ${line}`, level);
}
});
hasNextSection = true;
}
if (params.length > 0) {
if (hasNextSection) {
this.emitln(` * `, level);
}
params.forEach((item) => {
this.emit(` * @param ${item.name} `, level);
const items = item.text.trimEnd().split('\n');
items.forEach((line, index) => {
if (index === 0) {
this.emitln(`${line}`);
} else {
this.emitln(` * ${line}`, level);
}
});
});
hasNextSection = true;
}
if (returnText !== '') {
this.emit(` * @return `, level);
const returns = returnText.split('\n');
returns.forEach((line, index) => {
if (index === 0) {
this.emitln(`${line}`);
} else {
this.emitln(` * ${line}`, level);
}
});
hasNextSection = true;
}
if (throws.length > 0) {
if (hasNextSection) {
this.emitln(` * `, level);
}
throws.forEach((item) => {
this.emit(` * @throws `, level);
const items = item.trimEnd().split('\n');
items.forEach((line, index) => {
if (index === 0) {
this.emitln(`${line}`);
} else {
this.emitln(` * ${line}`, level);
}
});
});
}
if (this.ast.modelName) {
const modelName = _name(this.ast.modelName);
this.emitln(` * `, level);
this.emitln(` * {@link ${this.ast.title ? this.ast.title : modelName}} extends {@link ${this.ctx.isRequestModel ? 'RequestModel' : 'TeaModel'}}`, level);
this.emitln(` *`, level);
this.emitln(` * <p>${this.ast.title ? this.ast.title : modelName}</p>`, level);
}
this.emitln(` */`, level);
if (deprecated) {
this.emitln(`@Deprecated`, level);
}
}