Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 11037x 11037x 11037x 11037x 43383x 43383x 43383x 43383x 43383x 43383x 43383x 11037x 11037x 243x 243x 11037x 11037x 10491x 10491x 11037x 11037x 243x 243x 11037x 11037x 356x 356x 356x 356x 356x 1x 356x 355x 35x 5x 5x 355x 2x 2x 356x 356x 8x 8x 348x 348x 348x 11037x 11037x | import {Issue} from "../issue";
import {IObject} from "../objects/_iobject";
import {IRule, IRuleMetadata, RuleTag} from "./_irule";
import {BasicRuleConfig} from "./_basic_rule_config";
import {IRegistry} from "../_iregistry";
const NAME_REGEX = /^(\/[A-Z_\d]{3,8}\/)?[A-Z_\d<> ]+$/i;
export class AllowedObjectNamingConf extends BasicRuleConfig {
}
export class AllowedObjectNaming implements IRule {
private conf = new AllowedObjectNamingConf();
public getMetadata(): IRuleMetadata {
return {
key: "allowed_object_naming",
title: "Allowed object naming",
shortDescription: `Enforces basic name length and namespace restrictions, see note SAP 104010`,
tags: [RuleTag.Naming, RuleTag.SingleFile],
};
}
public initialize(_reg: IRegistry) {
return this;
}
public getConfig(): AllowedObjectNamingConf {
return this.conf;
}
public setConfig(conf: AllowedObjectNamingConf) {
this.conf = conf;
}
public run(obj: IObject): Issue[] {
const allowed = obj.getAllowedNaming();
const name = obj.getName();
let message = "";
if (name.length > allowed.maxLength) {
message = "Name exceeds max length, allowed is " + allowed.maxLength;
} else if (allowed.allowNamespace === false && name.indexOf("/") >= 0) {
message = "Namespace not allowed for object type";
} else if (allowed.customRegex !== undefined) {
if (name.match(allowed.customRegex) === null) {
message = "Name not allowed, expected to match " + allowed.customRegex.toString();
}
} else if (name.match(NAME_REGEX) === null) {
message = "Name not allowed";
}
if (message.length > 0) {
return [Issue.atRow(obj.getFiles()[0], 1, message, this.getMetadata().key, this.conf.severity)];
}
return [];
}
}
|