31 lines
995 B
C#
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);
|
|
}
|
|
}
|
|
|