//---------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Data.Metadata.Edm;
namespace System.Data.Common.CommandTrees
{
///
/// The expression visitor pattern abstract base class that should be implemented by visitors that do not return a result value.
///
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Db")]
public abstract class DbExpressionVisitor
{
///
/// Called when an expression of an otherwise unrecognized type is encountered.
///
/// The expression
public abstract void Visit(DbExpression expression);
///
/// Visitor pattern method for DbAndExpression.
///
/// The DbAndExpression that is being visited.
public abstract void Visit(DbAndExpression expression);
///
/// Visitor pattern method for DbApplyExpression.
///
/// The DbApplyExpression that is being visited.
public abstract void Visit(DbApplyExpression expression);
///
/// Visitor pattern method for DbArithmeticExpression.
///
/// The DbArithmeticExpression that is being visited.
public abstract void Visit(DbArithmeticExpression expression);
///
/// Visitor pattern method for DbCaseExpression.
///
/// The DbCaseExpression that is being visited.
public abstract void Visit(DbCaseExpression expression);
///
/// Visitor pattern method for DbCastExpression.
///
/// The DbCastExpression that is being visited.
public abstract void Visit(DbCastExpression expression);
///
/// Visitor pattern method for DbComparisonExpression.
///
/// The DbComparisonExpression that is being visited.
public abstract void Visit(DbComparisonExpression expression);
///
/// Visitor pattern method for DbConstantExpression.
///
/// The DbConstantExpression that is being visited.
public abstract void Visit(DbConstantExpression expression);
///
/// Visitor pattern method for DbCrossJoinExpression.
///
/// The DbCrossJoinExpression that is being visited.
public abstract void Visit(DbCrossJoinExpression expression);
///
/// Visitor pattern method for DbDerefExpression.
///
/// The DbDerefExpression that is being visited.
public abstract void Visit(DbDerefExpression expression);
///
/// Visitor pattern method for DbDistinctExpression.
///
/// The DbDistinctExpression that is being visited.
public abstract void Visit(DbDistinctExpression expression);
///
/// Visitor pattern method for DbElementExpression.
///
/// The DbElementExpression that is being visited.
public abstract void Visit(DbElementExpression expression);
///
/// Visitor pattern method for DbExceptExpression.
///
/// The DbExceptExpression that is being visited.
public abstract void Visit(DbExceptExpression expression);
///
/// Visitor pattern method for DbFilterExpression.
///
/// The DbFilterExpression that is being visited.
public abstract void Visit(DbFilterExpression expression);
///
/// Visitor pattern method for DbFunctionExpression
///
/// The DbFunctionExpression that is being visited.
public abstract void Visit(DbFunctionExpression expression);
///
/// Visitor pattern method for DbEntityRefExpression.
///
/// The DbEntityRefExpression that is being visited.
public abstract void Visit(DbEntityRefExpression expression);
///
/// Visitor pattern method for DbRefKeyExpression.
///
/// The DbRefKeyExpression that is being visited.
public abstract void Visit(DbRefKeyExpression expression);
///
/// Visitor pattern method for DbGroupByExpression.
///
/// The DbGroupByExpression that is being visited.
public abstract void Visit(DbGroupByExpression expression);
///
/// Visitor pattern method for DbIntersectExpression.
///
/// The DbIntersectExpression that is being visited.
public abstract void Visit(DbIntersectExpression expression);
///
/// Visitor pattern method for DbIsEmptyExpression.
///
/// The DbIsEmptyExpression that is being visited.
public abstract void Visit(DbIsEmptyExpression expression);
///
/// Visitor pattern method for DbIsNullExpression.
///
/// The DbIsNullExpression that is being visited.
public abstract void Visit(DbIsNullExpression expression);
///
/// Visitor pattern method for DbIsOfExpression.
///
/// The DbIsOfExpression that is being visited.
public abstract void Visit(DbIsOfExpression expression);
///
/// Visitor pattern method for DbJoinExpression.
///
/// The DbJoinExpression that is being visited.
public abstract void Visit(DbJoinExpression expression);
///
/// Visitor pattern method for DbLambdaExpression.
///
/// The DbLambdaExpression that is being visited.
public virtual void Visit(DbLambdaExpression expression)
{
throw EntityUtil.NotSupported();
}
///
/// Visitor pattern method for DbLikeExpression.
///
/// The DbLikeExpression that is being visited.
public abstract void Visit(DbLikeExpression expression);
///
/// Visitor pattern method for DbLimitExpression.
///
/// The DbLimitExpression that is being visited.
public abstract void Visit(DbLimitExpression expression);
#if METHOD_EXPRESSION
///
/// Visitor pattern method for MethodExpression.
///
/// The MethodExpression that is being visited.
public abstract void Visit(MethodExpression expression);
#endif
///
/// Visitor pattern method for DbNewInstanceExpression.
///
/// The DbNewInstanceExpression that is being visited.
public abstract void Visit(DbNewInstanceExpression expression);
///
/// Visitor pattern method for DbNotExpression.
///
/// The DbNotExpression that is being visited.
public abstract void Visit(DbNotExpression expression);
///
/// Visitor pattern method for DbNullExpression.
///
/// The DbNullExpression that is being visited.
public abstract void Visit(DbNullExpression expression);
///
/// Visitor pattern method for DbOfTypeExpression.
///
/// The DbOfTypeExpression that is being visited.
public abstract void Visit(DbOfTypeExpression expression);
///
/// Visitor pattern method for DbOrExpression.
///
/// The DbOrExpression that is being visited.
public abstract void Visit(DbOrExpression expression);
///
/// Visitor pattern method for DbParameterReferenceExpression.
///
/// The DbParameterReferenceExpression that is being visited.
public abstract void Visit(DbParameterReferenceExpression expression);
///
/// Visitor pattern method for DbProjectExpression.
///
/// The DbProjectExpression that is being visited.
public abstract void Visit(DbProjectExpression expression);
///
/// Visitor pattern method for DbPropertyExpression.
///
/// The DbPropertyExpression that is being visited.
public abstract void Visit(DbPropertyExpression expression);
///
/// Visitor pattern method for DbQuantifierExpression.
///
/// The DbQuantifierExpression that is being visited.
public abstract void Visit(DbQuantifierExpression expression);
///
/// Visitor pattern method for DbRefExpression.
///
/// The DbRefExpression that is being visited.
public abstract void Visit(DbRefExpression expression);
///
/// Visitor pattern method for DbRelationshipNavigationExpression.
///
/// The DbRelationshipNavigationExpression that is being visited.
public abstract void Visit(DbRelationshipNavigationExpression expression);
///
/// Visitor pattern method for DbScanExpression.
///
/// The DbScanExpression that is being visited.
public abstract void Visit(DbScanExpression expression);
///
/// Visitor pattern method for DbSkipExpression.
///
/// The DbSkipExpression that is being visited.
public abstract void Visit(DbSkipExpression expression);
///
/// Visitor pattern method for DbSortExpression.
///
/// The DbSortExpression that is being visited.
public abstract void Visit(DbSortExpression expression);
///
/// Visitor pattern method for DbTreatExpression.
///
/// The DbTreatExpression that is being visited.
public abstract void Visit(DbTreatExpression expression);
///
/// Visitor pattern method for DbUnionAllExpression.
///
/// The DbUnionAllExpression that is being visited.
public abstract void Visit(DbUnionAllExpression expression);
///
/// Visitor pattern method for DbVariableReferenceExpression.
///
/// The DbVariableReferenceExpression that is being visited.
public abstract void Visit(DbVariableReferenceExpression expression);
}
}