Files
sql-utilities/src/Strata.SqlTools.SqlBreakdown/Expressions/Functions/Conditional/IfThenElseExpression.cs
T

31 lines
995 B
C#

using Strata.SqlTools.SqlBreakdown.Interfaces.Core;
using Strata.SqlTools.SqlBreakdown.Expressions.Conditional;
namespace Strata.SqlTools.SqlBreakdown.Expressions.Functions.Conditional;
/// <summary>
/// Single-level if-then-else expression. Similar to <see cref="CaseExpression"/>, but only allows a single condition.
/// </summary>
public class IfThenElseExpression : ConditionalFunctionExpression
{
public override string FunctionName => "IFF";
public BooleanExpression Condition { get; }
public Expression ResultIfTrue { get; }
public Expression ResultIfFalse { get; }
public IfThenElseExpression(BooleanExpression condition, Expression resultIfTrue, Expression resultIfFalse) : base(condition, resultIfTrue, resultIfFalse)
{
Condition = condition;
ResultIfTrue = resultIfTrue;
ResultIfFalse = resultIfFalse;
}
public override T Accept<T>(IVisitor<T> visitor)
{
return visitor.VisitFunctionExpression(this);
}
}