JD2022-TU1/main/tools/framework/JD.TeaBoxAddinSystem/Addins/Description/Conditions/NotCondition.cs

48 lines
No EOL
1.2 KiB
C#

using JD.Kernel.StaticHelpers;
namespace JD.TeaBoxAddinSystem.Addins.Description.Conditions
{
/// <summary>
/// A condition that implements the NOT operator.
/// </summary>
internal class NotCondition : CompositeCondition
{
#region Constructor
/// <summary>
/// Constructor.
/// </summary>
/// <param name="innerCondition"></param>
public NotCondition(Condition innerCondition)
: base(innerCondition)
{
Throw.IfNull(innerCondition, "innerCondition");
}
#endregion
#region Methods
/// <summary>
/// Overriden.
/// </summary>
/// <returns></returns>
public override bool Evaluate()
{
System.Diagnostics.Debug.Assert(InnerConditions.Length == 1);
return !InnerConditions[0].Evaluate();
}
/// <summary>
/// Overriden.
/// </summary>
/// <returns></returns>
public override string ToString()
{
System.Diagnostics.Debug.Assert(InnerConditions.Length == 1);
return $"!{InnerConditions[0]}";
}
#endregion
}
}