UNPKG

@abaplint/core

Version:
59 lines 2.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NoAliases = exports.NoAliasesConf = void 0; const issue_1 = require("../issue"); const _basic_rule_config_1 = require("./_basic_rule_config"); const _abap_rule_1 = require("./_abap_rule"); const _irule_1 = require("./_irule"); const visibility_1 = require("../abap/4_file_information/visibility"); class NoAliasesConf extends _basic_rule_config_1.BasicRuleConfig { constructor() { super(...arguments); /** Skip reporting aliases in private sections. */ this.ignorePrivate = false; } } exports.NoAliasesConf = NoAliasesConf; class NoAliases extends _abap_rule_1.ABAPRule { constructor() { super(...arguments); this.conf = new NoAliasesConf(); } getMetadata() { return { key: "no_aliases", title: "No ALIASES", shortDescription: `Detects use of the ALIAS statement`, tags: [_irule_1.RuleTag.SingleFile], }; } getConfig() { return this.conf; } setConfig(conf) { this.conf = conf; } runParsed(file) { const issues = []; const message = "Do not use ALIASES"; for (const classDef of file.getInfo().listClassDefinitions()) { for (const alias of classDef.aliases) { if (this.skipAlias(alias)) { continue; } issues.push(issue_1.Issue.atIdentifier(alias.identifier, message, this.getMetadata().key, this.conf.severity)); } } for (const interfaceDef of file.getInfo().listInterfaceDefinitions()) { for (const alias of interfaceDef.aliases) { issues.push(issue_1.Issue.atIdentifier(alias.identifier, message, this.getMetadata().key, this.conf.severity)); } } return issues; } skipAlias(alias) { return this.conf.ignorePrivate === true && alias.visibility === visibility_1.Visibility.Private; } } exports.NoAliases = NoAliases; //# sourceMappingURL=no_aliases.js.map