mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-23 20:32:34 +00:00
117 lines
2.5 KiB
C#
117 lines
2.5 KiB
C#
|
|
||
|
#region ================== Copyright (c) 2007 Pascal vd Heiden
|
||
|
|
||
|
/*
|
||
|
* Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com
|
||
|
* This program is released under GNU General Public License
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region ================== Namespaces
|
||
|
|
||
|
using System;
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Globalization;
|
||
|
using System.Text;
|
||
|
using System.Runtime.InteropServices;
|
||
|
using System.Diagnostics;
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
namespace CodeImp.DoomBuilder
|
||
|
{
|
||
|
public class ErrorLogger
|
||
|
{
|
||
|
#region ================== Constants
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region ================== Variables
|
||
|
|
||
|
private List<ErrorItem> errors;
|
||
|
private volatile bool changed;
|
||
|
private volatile bool erroradded;
|
||
|
private volatile bool warningadded;
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region ================== Properties
|
||
|
|
||
|
public bool HasErrors { get { return (errors.Count > 0); } }
|
||
|
public bool HasChanged { get { return changed; } set { changed = value; } }
|
||
|
public bool IsErrorAdded { get { return erroradded; } set { erroradded = value; } }
|
||
|
public bool IsWarningAdded { get { return warningadded; } set { warningadded = value; } }
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region ================== Constructor / Disposer
|
||
|
|
||
|
// Constructor
|
||
|
internal ErrorLogger()
|
||
|
{
|
||
|
errors = new List<ErrorItem>();
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
|
||
|
#region ================== Methods
|
||
|
|
||
|
// This clears the errors
|
||
|
public void Clear()
|
||
|
{
|
||
|
lock(this)
|
||
|
{
|
||
|
changed = false;
|
||
|
erroradded = false;
|
||
|
warningadded = false;
|
||
|
errors.Clear();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// This adds a new error
|
||
|
public void Add(ErrorType type, string message)
|
||
|
{
|
||
|
string prefix = "";
|
||
|
|
||
|
lock(this)
|
||
|
{
|
||
|
errors.Add(new ErrorItem(type, message));
|
||
|
switch(type)
|
||
|
{
|
||
|
case ErrorType.Error:
|
||
|
erroradded = true;
|
||
|
prefix = "ERROR: ";
|
||
|
break;
|
||
|
|
||
|
case ErrorType.Warning:
|
||
|
warningadded = true;
|
||
|
prefix = "WARNING: ";
|
||
|
break;
|
||
|
}
|
||
|
changed = true;
|
||
|
General.WriteLogLine(prefix + message);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// This returns the list of errors
|
||
|
internal List<ErrorItem> GetErrors()
|
||
|
{
|
||
|
lock(this)
|
||
|
{
|
||
|
List<ErrorItem> copylist = new List<ErrorItem>(errors);
|
||
|
return copylist;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endregion
|
||
|
}
|
||
|
}
|