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); } }