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 | 1x 1x 1x 1x 44x 44x 44x 44x 182x 182x 44x 44x 44x 44x 6x 6x 6x 6x 6x 44x 44x 49x 49x 49x 44x 44x 32x 32x 32x 32x 44x 44x 11x 11x 11x 14x 10x 10x 14x 1x 1x 44x 44x 44x 44x 43x 17x 17x 26x 26x 26x 26x 43x 26x 43x 43x 2x 2x 43x 32x 32x 24x 44x 44x | import {AbstractObject} from "./_abstract_object"; import {Message} from "../abap/types/message"; import {xmlToArray, unescape} from "../xml_utils"; export class MessageClass extends AbstractObject { private parsedMessages: Message[] | undefined = undefined; public getType(): string { return "MSAG"; } public getDescription(): string | undefined { this.parseXML(); // todo return undefined; } public getAllowedNaming() { return { maxLength: 20, allowNamespace: true, }; } public setDirty(): void { this.parsedMessages = undefined; super.setDirty(); } public getMessages(): readonly Message[] { this.parseXML(); const msg = this.parsedMessages; return msg ? msg : []; } public getByNumber(num: string): Message | undefined { this.parseXML(); // todo, optimize performance, for (const message of this.getMessages()) { if (message.getNumber() === num) { return message; } } return undefined; } ///////////////////////////////// private parseXML() { if (this.parsedMessages !== undefined) { return; } this.parsedMessages = []; const parsed = super.parseRaw2(); if (parsed === undefined) { return; } const t100 = parsed?.abapGit?.["asx:abap"]["asx:values"]?.T100; if (t100 === undefined) { return; } for (const msg of xmlToArray(t100.T100)) { this.parsedMessages.push(new Message(msg.MSGNR, unescape(msg.TEXT))); } } } |