//--------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- namespace System.Data.Common.EntitySql.AST { using System; using System.Globalization; using System.Collections; using System.Collections.Generic; /// /// Represents the Seached Case Expression - CASE WHEN THEN [ELSE] END. /// internal sealed class CaseExpr : Node { private readonly NodeList _whenThenExpr; private readonly Node _elseExpr; /// /// Initializes case expression without else sub-expression. /// /// whenThen expression list internal CaseExpr(NodeList whenThenExpr) : this(whenThenExpr, null) { } /// /// Initializes case expression with else sub-expression. /// /// whenThen expression list /// else expression internal CaseExpr(NodeList whenThenExpr, Node elseExpr) { _whenThenExpr = whenThenExpr; _elseExpr = elseExpr; } /// /// Returns the list of WhenThen expressions. /// internal NodeList WhenThenExprList { get { return _whenThenExpr; } } /// /// Returns the optional Else expression. /// internal Node ElseExpr { get { return _elseExpr; } } } /// /// Represents the when then sub expression. /// internal class WhenThenExpr : Node { private readonly Node _whenExpr; private readonly Node _thenExpr; /// /// Initializes WhenThen sub-expression. /// /// When expression /// Then expression internal WhenThenExpr(Node whenExpr, Node thenExpr) { _whenExpr = whenExpr; _thenExpr = thenExpr; } /// /// Returns When expression. /// internal Node WhenExpr { get { return _whenExpr; } } /// /// Returns Then Expression. /// internal Node ThenExpr { get { return _thenExpr; } } } }