Modified Logger
This commit is contained in:
@@ -1,16 +1,64 @@
|
||||
using Firebird2D.Logger;
|
||||
|
||||
using Firebird2D.Logger;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace Firebird2D.Requirement
|
||||
{
|
||||
public class Require
|
||||
{
|
||||
public static void NotNull(object input, string name, [CallerMemberName] string callerName = "", [CallerFilePath] string callerPath = "", [CallerLineNumber] int callerLineNumber = 0)
|
||||
public static void NotNull(object input, string name, int loggerInstanceNumber,
|
||||
[CallerMemberName] string callerName = "",
|
||||
[CallerFilePath] string callerPath = "",
|
||||
[CallerLineNumber] int callerLineNumber = 0)
|
||||
{
|
||||
if (input == null) {
|
||||
GameLogger.Log(callerName, LogType.Error, string.Format("{0}, was Null at Line {1} in {2} from {3}.", name, callerLineNumber, callerName, callerPath));
|
||||
throw new ArgumentNullException(string.Format("{0}, was Null at Line {1} in {2} from {3}.", name, callerLineNumber, callerName, callerPath));
|
||||
if (input == null)
|
||||
{
|
||||
LogAndThrow(loggerInstanceNumber, callerName, callerPath, callerLineNumber,
|
||||
$"{name} was null.");
|
||||
}
|
||||
}
|
||||
|
||||
public static void NotEmpty(string input, string name, int loggerInstanceNumber,
|
||||
[CallerMemberName] string callerName = "",
|
||||
[CallerFilePath] string callerPath = "",
|
||||
[CallerLineNumber] int callerLineNumber = 0)
|
||||
{
|
||||
if (string.IsNullOrEmpty(input))
|
||||
{
|
||||
LogAndThrow(loggerInstanceNumber, callerName, callerPath, callerLineNumber,
|
||||
$"{name} must not be null or empty.");
|
||||
}
|
||||
}
|
||||
|
||||
public static void Range(int value, int min, int max, string name, int loggerInstanceNumber,
|
||||
[CallerMemberName] string callerName = "",
|
||||
[CallerFilePath] string callerPath = "",
|
||||
[CallerLineNumber] int callerLineNumber = 0)
|
||||
{
|
||||
if (value < min || value > max)
|
||||
{
|
||||
LogAndThrow(loggerInstanceNumber, callerName, callerPath, callerLineNumber,
|
||||
$"{name} must be in range [{min}, {max}], but was {value}.");
|
||||
}
|
||||
}
|
||||
|
||||
public static void IsTrue(bool condition, string message, int loggerInstanceNumber,
|
||||
[CallerMemberName] string callerName = "",
|
||||
[CallerFilePath] string callerPath = "",
|
||||
[CallerLineNumber] int callerLineNumber = 0)
|
||||
{
|
||||
if (!condition)
|
||||
{
|
||||
LogAndThrow(loggerInstanceNumber, callerName, callerPath, callerLineNumber, message);
|
||||
}
|
||||
}
|
||||
|
||||
private static void LogAndThrow(int loggerInstanceNumber, string callerName, string callerPath, int lineNumber, string message)
|
||||
{
|
||||
string fullMessage = $"{message} (at {callerName} in {callerPath}, line {lineNumber})";
|
||||
|
||||
GameLogger.GetInstance(loggerInstanceNumber).Log(callerName, LogType.Error, fullMessage);
|
||||
throw new ArgumentException(fullMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user