import { Message } from './Message'; import { MessageTypes } from './MessageType'; export class MessageReader { private _messages:Message[] = []; private _scanned = false; private _errors = new Set(); private _warnings = new Set(); constructor( messages:Message[] = null ) { this._messages = messages || []; } set messages( messages:Message[] ) { this._messages = messages; this._scanned = false; } get messages() { return this._messages; } private _scan() { if ( this._scanned ) { return; } this._scanned = true; this._errors.clear(); this._warnings.clear(); for ( let i = 0; i < this._messages.length; i++ ) { if ( MessageTypes.Error === this._messages[ i ].type ) { this._errors.add( i ); } if ( MessageTypes.Warning === this._messages[ i ].type ) { this._warnings.add( i ); } } } get hasErrors() { this._scan(); return this._errors.size > 0; } get hasWarnings() { this._scan(); return this._warnings.size > 0; } }