@abaplint/core
Version:
abaplint - Core API
77 lines • 2.86 kB
JavaScript
;
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