UNPKG

@abaplint/core

Version:
77 lines 2.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MessageClass = void 0; const _abstract_object_1 = require("./_abstract_object"); const message_1 = require("../abap/types/message"); const xml_utils_1 = require("../xml_utils"); class MessageClass extends _abstract_object_1.AbstractObject { constructor() { super(...arguments); this.xml = undefined; } getType() { return "MSAG"; } getDescription() { var _a; this.parseXML(); return (_a = this.xml) === null || _a === void 0 ? void 0 : _a.description; } getAllowedNaming() { return { maxLength: 20, allowNamespace: true, }; } getParsed() { this.parseXML(); return this.xml; } setDirty() { this.xml = undefined; super.setDirty(); } getMessages() { var _a; this.parseXML(); const msg = (_a = this.xml) === null || _a === void 0 ? void 0 : _a.parsedMessages; return msg ? msg : []; } getByNumber(num) { this.parseXML(); // todo, optimize performance, for (const message of this.getMessages()) { if (message.getNumber() === num) { return message; } } return undefined; } ///////////////////////////////// parseXML() { var _a, _b, _c, _d, _e, _f, _g, _h; if (this.xml !== undefined) { return; } this.xml = { topName: undefined, description: undefined, parsedMessages: [], }; const parsed = super.parseRaw2(); if (parsed === undefined) { return; } this.xml.topName = (_c = (_b = (_a = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _a === void 0 ? void 0 : _a["asx:abap"]["asx:values"]) === null || _b === void 0 ? void 0 : _b.T100A) === null || _c === void 0 ? void 0 : _c.ARBGB; this.xml.description = (_f = (_e = (_d = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _d === void 0 ? void 0 : _d["asx:abap"]["asx:values"]) === null || _e === void 0 ? void 0 : _e.T100A) === null || _f === void 0 ? void 0 : _f.STEXT; const t100 = (_h = (_g = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _g === void 0 ? void 0 : _g["asx:abap"]["asx:values"]) === null || _h === void 0 ? void 0 : _h.T100; if (t100 === undefined) { return; } for (const msg of (0, xml_utils_1.xmlToArray)(t100.T100)) { this.xml.parsedMessages.push(new message_1.Message(msg.MSGNR, (0, xml_utils_1.unescape)(msg.TEXT), msg.ARBGB)); } } } exports.MessageClass = MessageClass; //# sourceMappingURL=message_class.js.map