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 62 63 64 65 66 67 68 69 70 71 72 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 10134x 10134x 10134x 10134x 10134x 30224x 30224x 30224x 30224x 30224x 30224x 30224x 30224x 30224x 30224x 30224x 30224x 30224x 10134x 10134x 9626x 9626x 10134x 10134x 238x 238x 10134x 10134x 241x 241x 241x 10134x 10134x 305x 305x 305x 305x 305x 305x 301x 301x 4x 4x 4x 4x 1x 1x 4x 1x 1x 1x 1x 1x 4x 3x 3x 3x 10134x 10134x | import {Issue} from "../issue"; import {IRule, IRuleMetadata, RuleTag} from "./_irule"; import {IObject} from "../objects/_iobject"; import {IRegistry} from "../_iregistry"; import {Version} from "../version"; import {BasicRuleConfig} from "./_basic_rule_config"; import {DataDefinition} from "../objects"; export class CDSLegacyViewConf extends BasicRuleConfig { } export class CDSLegacyView implements IRule { private conf = new CDSLegacyViewConf(); private reg: IRegistry; public getMetadata(): IRuleMetadata { return { key: "cds_legacy_view", title: "CDS Legacy View", shortDescription: `Identify CDS Legacy Views`, // eslint-disable-next-line max-len extendedInformation: `Use DEFINE VIEW ENTITY instead of DEFINE VIEW https://blogs.sap.com/2021/10/16/a-new-generation-of-cds-views-how-to-migrate-your-cds-views-to-cds-view-entities/ v755 and up`, tags: [RuleTag.SingleFile, RuleTag.Upport], }; } public getConfig() { return this.conf; } public setConfig(conf: CDSLegacyViewConf) { this.conf = conf; } public initialize(reg: IRegistry): IRule { this.reg = reg; return this; } public run(o: IObject): Issue[] { const issues: Issue[] = []; if (this.reg.getConfig().getVersion() < Version.v755 && this.reg.getConfig().getVersion() !== Version.Cloud) { return []; } if (o.getType() !== "DDLS") { return []; } if (o instanceof DataDefinition) { const tree = o.getTree(); if (tree === undefined) { return []; // parser error } if (tree.findDirectTokenByText("ENTITY") === undefined) { const file = o.findSourceFile(); if (file) { issues.push(Issue.atRow(file, 1, "CDS Legacy View", this.getMetadata().key, this.getConfig().severity)); } } } return issues; } } |