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 38822x 38822x 1x 1x 4256x 4256x 4256x 4256x 1x 1x 1x 1x 1x 1x 1x 159x 159x 159x 159x 159x 1x 1x 8288x 8288x 8288x 1x 1x 4336x 4336x 4336x 1x 1x 157x 157x 157x 1x 1x 2x 2x 2x 1x 1x 1x 1x 4496x 1751x 1751x 2745x 2745x 2745x 4496x 2714x 2714x 2714x 2714x 2714x 2714x 2714x 2714x 31x 31x 4496x 53x 15x 15x 53x 31x 31x 31x 31x 4496x 4496x 4496x 4496x 4496x 4496x 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, }; } } |