using Strata.SqlTools.SqlBreakdown.Interfaces.Core;
using Strata.SqlTools.SqlBreakdown.Expressions.Conditional;
namespace Strata.SqlTools.SqlBreakdown.Expressions.Functions.Conditional;
///
/// Single-level if-then-else expression. Similar to , but only allows a single condition.
///
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(IVisitor visitor)
{
return visitor.VisitFunctionExpression(this);
}
}