//---------------------------------------------------------------------
//
// 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 a relationship navigation operator NAVIGATE(sourceRefExpr, Relationship-Type-Name [,ToEndName [,FromEndName]]).
/// Also used in WITH RELATIONSHIP clause as RELATIONSHIP(targetRefExpr, Relationship-Type-Name [,FromEndName [,ToEndName]]).
///
internal sealed class RelshipNavigationExpr : Node
{
private readonly Node _refExpr;
private readonly Node _relshipTypeName;
private readonly Identifier _toEndIdentifier;
private readonly Identifier _fromEndIdentifier;
///
/// Initializes relationship navigation expression.
///
internal RelshipNavigationExpr(Node refExpr, Node relshipTypeName, Identifier toEndIdentifier, Identifier fromEndIdentifier)
{
_refExpr = refExpr;
_relshipTypeName = relshipTypeName;
_toEndIdentifier = toEndIdentifier;
_fromEndIdentifier = fromEndIdentifier;
}
///
/// Entity reference expression.
///
internal Node RefExpr
{
get { return _refExpr; }
}
///
/// Relship type name.
///
internal Node TypeName
{
get { return _relshipTypeName; }
}
///
/// TO end identifier.
///
internal Identifier ToEndIdentifier
{
get { return _toEndIdentifier; }
}
///
/// FROM end identifier.
///
internal Identifier FromEndIdentifier
{
get { return _fromEndIdentifier; }
}
}
}