Deveel.Data.Sql.Statements.ConditionStatement.ExecuteStatement C# (CSharp) Method

ExecuteStatement() protected method

protected ExecuteStatement ( ExecutionContext context ) : void
context ExecutionContext
return void
        protected override void ExecuteStatement(ExecutionContext context)
        {
            var resultType = ConditionExpression.ReturnType(context.Request, null);
            if (!(resultType is BooleanType))
                throw new StatementException("The condition expression does not evaluate to a boolean.");

            // The condition statement triggers the creation of a new context

            var block = context.NewBlock(this);

            var conditionResult = ConditionExpression.EvaluateToConstant(context.Request, null);
            if (conditionResult) {
                foreach (var statement in TrueStatements) {
                    statement.Execute(block);

                    if (block.HasTermination)
                        break;
                }
            } else if (FalseStatements != null) {
                foreach (var statement in FalseStatements) {
                    statement.Execute(block);

                    if (block.HasTermination)
                        break;
                }
            }
        }