UNPKG

jalhyd

Version:

JaLHyd, a Javascript Library for Hydraulics

159 lines 4.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cLog = void 0; const internal_modules_1 = require("../internal_modules"); // tslint:disable-next-line:class-name class cLog { constructor(parent) { this._messages = []; this.parent = parent; } /** * efface tous les messages */ clear() { this._messages = []; } /** * insère un message en fin de liste */ add(m) { // add pointer to the current log as message's parent, unless the message // already has a parent, and unless the current log has no pointer to a result if (m.parent === undefined) { m.parent = this; } this._messages.push(m); } /** * insère un log entier en fin de liste */ addLog(l) { for (const m of l.messages) { this.add(m); } } /** * insère un message en début de liste */ insert(m) { // add pointer to the current log as message's parent, unless the message // already has a parent, and unless the current log has no pointer to a result if (m.parent === undefined && this.parent !== undefined) { m.parent = this; } this._messages.unshift(m); } /** * insère un log entier en début de liste */ insertLog(l) { for (let i = l.messages.length - 1; i >= 0; i--) { this.insert(l.messages[i]); } } get messages() { return this._messages; } /** * @return a clone of "this" (clone error messages only) */ cloneErrors() { const res = new cLog(); for (const m of this._messages) { if (m.getSeverity() === internal_modules_1.MessageSeverity.ERROR) { res.add(m); } } return res; } /** * @return a clone of "this" (do not clone messages, keep references to original messages) */ clone() { const res = new cLog(); for (const m of this._messages) { res.add(m); } return res; } toString() { return this._messages.join("\n"); } /** * @param mc message code you're looking for * @returns true if log contains at least one occurrence of given message code */ contains(mc) { for (const m of this.messages) { if (m.code === mc) { return true; } } return false; } getMessage(mc) { for (const m of this.messages) { if (m.code === mc) { return m; } } return undefined; } /** * @returns true if all messages have the same code */ hasOnlyMessage(code) { for (const m of this.messages) { if (m.code !== code) { return false; } } return true; } /** * @returns true if given message exactly matches one of the messages */ hasMessage(m) { for (const msg of this._messages) { if (m.equals(msg, true)) { return true; } } return false; } get uniqueMessageCodes() { const res = []; for (const m of this.messages) { if (res.indexOf(m.code) === -1) { res.push(m.code); } } return res; } /** * compute error, warning, info count in a message list */ static messagesStats(messages, stats) { if (stats === undefined) { stats = { info: 0, warning: 0, error: 0 }; } for (const m of messages) { const s = m.getSeverity(); switch (s) { case internal_modules_1.MessageSeverity.INFO: stats.info++; break; case internal_modules_1.MessageSeverity.WARNING: stats.warning++; break; case internal_modules_1.MessageSeverity.ERROR: stats.error++; break; } } return stats; } } exports.cLog = cLog; //# sourceMappingURL=log.js.map