UNPKG

@abaplint/core

Version:
56 lines 1.98 kB
"use strict"; 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