UNPKG

jspurefix

Version:
72 lines 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MessageParser = void 0; const definition_1 = require("../../definition"); const node_parser_1 = require("./node-parser"); const parse_context_1 = require("./parse-context"); const contained_1 = require("../../contained"); class MessageParser extends node_parser_1.NodeParser { constructor(progress) { super(progress); this.progress = progress; } open(line, node) { switch (node.name) { case 'message': { const att = node.attributes; const msg = new definition_1.MessageDefinition(att.name, att.name, att.msgtype, att.msgcat, null); const context = new parse_context_1.ParseContext(msg.name, true, msg); this.header(msg, context); break; } case 'field': { this.addSimple(node); break; } case 'component': { if (node.isSelfClosing) { this.addComponentField(node.attributes.name, node); } break; } case 'group': { if (!node.isSelfClosing) { this.beginGroupDefinition(node); } break; } } } header(msg, context) { const hdr = this.progress.definitions.component.get('StandardHeader'); const builder = new contained_1.ContainedSetBuilder(msg); const contained = hdr ? new contained_1.ContainedComponentField(hdr, msg.fields.length, true) : null; if (contained) { this.progress.newAdds++; builder.add(contained); this.startContext(context); } } close(line, name) { var _a, _b; switch (name) { case 'message': { const parent = (_a = this.parseContexts.pop()) !== null && _a !== void 0 ? _a : null; const message = (_b = parent === null || parent === void 0 ? void 0 : parent.asMessage()) !== null && _b !== void 0 ? _b : null; if (message) { this.progress.newDefines++; this.progress.definitions.addMessage(message); } break; } case 'group': { this.addGroupField(name); break; } } } } exports.MessageParser = MessageParser; //# sourceMappingURL=message-parser.js.map