//------------------------------------------------------------------------------
//
// 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 CREATEREF(entitySet, keys) expression.
///
internal sealed class CreateRefExpr : Node
{
private readonly Node _entitySet;
private readonly Node _keys;
private readonly Node _typeIdentifier;
///
/// Initializes CreateRefExpr.
///
/// expression representing the entity set
internal CreateRefExpr(Node entitySet, Node keys) : this(entitySet, keys, null)
{ }
///
/// Initializes CreateRefExpr.
///
internal CreateRefExpr(Node entitySet, Node keys, Node typeIdentifier)
{
_entitySet = entitySet;
_keys = keys;
_typeIdentifier = typeIdentifier;
}
///
/// Returns the expression for the entity set.
///
internal Node EntitySet
{
get { return _entitySet; }
}
///
/// Returns the expression for the keys.
///
internal Node Keys
{
get { return _keys; }
}
///
/// Gets optional typeidentifier. May be null.
///
internal Node TypeIdentifier
{
get { return _typeIdentifier; }
}
}
///
/// Represents KEY(expr) expression.
///
internal class KeyExpr : Node
{
private readonly Node _argExpr;
///
/// Initializes KEY expression.
///
internal KeyExpr(Node argExpr)
{
_argExpr = argExpr;
}
///
/// Returns KEY argument expression.
///
internal Node ArgExpr
{
get { return _argExpr; }
}
}
}