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;
|
|
}
|
|
|
|
} |