@abaplint/core
Version:
abaplint - Core API
56 lines • 1.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DescriptionEmpty = exports.DescriptionEmptyConf = void 0;
const issue_1 = require("../issue");
const objects_1 = require("../objects");
const _basic_rule_config_1 = require("./_basic_rule_config");
const position_1 = require("../position");
// standard class CL_OO_CLASS assumes classes have descriptions
class DescriptionEmptyConf extends _basic_rule_config_1.BasicRuleConfig {
}
exports.DescriptionEmptyConf = DescriptionEmptyConf;
class DescriptionEmpty {
constructor() {
this.conf = new DescriptionEmptyConf();
}
getMetadata() {
return {
key: "description_empty",
title: "Description in class must exist",
shortDescription: `Ensures descriptions in class metadata exist.`,
};
}
getDescription(name) {
return "Description empty in " + name;
}
getConfig() {
return this.conf;
}
setConfig(conf) {
this.conf = conf;
}
initialize(_reg) {
return this;
}
run(obj) {
const issues = [];
if (obj instanceof objects_1.Class || obj instanceof objects_1.Interface) {
const description = obj.getDescription();
let message = undefined;
if (description === "") {
message = this.getDescription(obj.getName());
}
else if (description === undefined) {
message = this.getDescription(obj.getName() + ", class XML file not found");
}
if (message) {
const position = new position_1.Position(1, 1);
const issue = issue_1.Issue.atPosition(obj.getFiles()[0], position, message, this.getMetadata().key, this.conf.severity);
issues.push(issue);
}
}
return issues;
}
}
exports.DescriptionEmpty = DescriptionEmpty;
//# sourceMappingURL=description_empty.js.map