@abaplint/core
Version:
abaplint - Core API
66 lines • 2.01 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.parsedMessages = undefined;
}
getType() {
return "MSAG";
}
getDescription() {
this.parseXML();
// todo
return undefined;
}
getAllowedNaming() {
return {
maxLength: 20,
allowNamespace: true,
};
}
setDirty() {
this.parsedMessages = undefined;
super.setDirty();
}
getMessages() {
this.parseXML();
const msg = this.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;
if (this.parsedMessages !== undefined) {
return;
}
this.parsedMessages = [];
const parsed = super.parseRaw2();
if (parsed === undefined) {
return;
}
const t100 = (_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.T100;
if (t100 === undefined) {
return;
}
for (const msg of (0, xml_utils_1.xmlToArray)(t100.T100)) {
this.parsedMessages.push(new message_1.Message(msg.MSGNR, (0, xml_utils_1.unescape)(msg.TEXT)));
}
}
}
exports.MessageClass = MessageClass;
//# sourceMappingURL=message_class.js.map