66 lines
1.1 KiB
TypeScript
66 lines
1.1 KiB
TypeScript
![]() |
import { Message } from './Message';
|
||
|
import { MessageTypes } from './MessageType';
|
||
|
|
||
|
export class MessageReader
|
||
|
{
|
||
|
private _messages:Message[] = [];
|
||
|
private _scanned = false;
|
||
|
private _errors = new Set<number>();
|
||
|
private _warnings = new Set<number>();
|
||
|
|
||
|
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;
|
||
|
}
|
||
|
|
||
|
}
|