//--------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- namespace System.Data.Common.EntitySql.AST { using System; using System.Diagnostics; /// /// AST node for an aliased expression. /// internal sealed class AliasedExpr : Node { private readonly Node _expr; private readonly Identifier _alias; /// /// Constructs an aliased expression node. /// internal AliasedExpr(Node expr, Identifier alias) { Debug.Assert(expr != null, "expr != null"); Debug.Assert(alias != null, "alias != null"); if (String.IsNullOrEmpty(alias.Name)) { throw EntityUtil.EntitySqlError(alias.ErrCtx, System.Data.Entity.Strings.InvalidEmptyIdentifier); } _expr = expr; _alias = alias; } /// /// Constructs an aliased expression node with null alias. /// internal AliasedExpr(Node expr) { Debug.Assert(expr != null, "expr != null"); _expr = expr; } internal Node Expr { get { return _expr; } } /// /// Returns expression alias identifier, or null if not aliased. /// internal Identifier Alias { get { return _alias; } } } }