UNPKG

@abaplint/core

Version:
90 lines 3.64 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; } getTextsTranslations() { var _a; this.parseXML(); return (_a = this.xml) === null || _a === void 0 ? void 0 : _a.textsTranslations; } 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, _j, _k; if (this.xml !== undefined) { return; } this.xml = { topName: undefined, description: undefined, parsedMessages: [], textsTranslations: [], }; 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)); } const t100_texts = (_k = (_j = parsed === null || parsed === void 0 ? void 0 : parsed.abapGit) === null || _j === void 0 ? void 0 : _j["asx:abap"]["asx:values"]) === null || _k === void 0 ? void 0 : _k.T100_TEXTS; if (t100_texts === undefined) { return; } for (const item of (0, xml_utils_1.xmlToArray)(t100_texts === null || t100_texts === void 0 ? void 0 : t100_texts.item)) { this.xml.textsTranslations.push({ language: item.SPRSL, number: item.MSGNR, text: (0, xml_utils_1.unescape)(item.TEXT) }); } } } exports.MessageClass = MessageClass; //# sourceMappingURL=message_class.js.map