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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 39467x 39467x 1x 1x 4184x 4184x 4184x 4184x 1x 1x 1x 1x 1x 1x 1x 193x 193x 193x 193x 193x 1x 1x 8096x 8096x 8096x 1x 1x 4381x 4381x 4381x 1x 1x 191x 191x 191x 1x 1x 2x 2x 2x 1x 1x 1x 1x 4575x 1881x 1881x 2694x 2694x 2694x 4575x 2663x 2663x 2663x 2663x 2663x 2663x 2663x 2663x 31x 31x 4575x 53x 15x 15x 53x 31x 31x 31x 31x 4575x 4575x 4575x 4575x 4575x 4575x 1x | import {ABAPObject} from "./_abap_object"; import {ABAPFile} from "../abap/abap_file"; import {DynproList, parseDynpros} from "./_dynpros"; import {xmlToArray, unescape} from "../xml_utils"; export class Program extends ABAPObject { private parsedXML: { isInclude: boolean, isModulePool: boolean, description: string | undefined, dynpros: DynproList, } | undefined; public getType(): string { return "PROG"; } public getSequencedFiles(): readonly ABAPFile[] { const main = this.getMainABAPFile(); if (main === undefined) { return []; } return [main]; } public getDescription(): string | undefined { this.parseXML(); return this.parsedXML?.description; } public getAllowedNaming() { return { maxLength: 40, allowNamespace: true, }; } public setDirty(): void { this.parsedXML = undefined; super.setDirty(); } public isInclude(): boolean { this.parseXML(); return this.parsedXML!.isInclude; } public isModulePool(): boolean { this.parseXML(); return this.parsedXML!.isModulePool; } public getDynpros(): DynproList { this.parseXML(); return this.parsedXML!.dynpros || []; } //////////////////////////// private parseXML() { if (this.parsedXML !== undefined) { return; } const file = this.getXMLFile(); const parsed = this.parseRaw2(); if (parsed === undefined) { this.parsedXML = { isInclude: false, isModulePool: false, description: undefined, dynpros: [], }; return; } let description = ""; for (const t of xmlToArray(parsed.abapGit?.["asx:abap"]["asx:values"]?.TPOOL?.item)) { if (t?.ID === "R") { description = t.ENTRY ? unescape(t.ENTRY) : ""; } } const dynpros = parseDynpros(parsed); this.parsedXML = { isInclude: file ? file.getRaw().includes("<SUBC>I</SUBC>") : false, isModulePool: file ? file.getRaw().includes("<SUBC>M</SUBC>") : false, dynpros: dynpros, description: description, }; } } |