@abaplint/core
Version:
abaplint - Core API
59 lines • 2.11 kB
JavaScript
;
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