UpdateExpressionVisitor.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Map / Update / Internal / UpdateExpressionVisitor.cs / 2 / UpdateExpressionVisitor.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// 
// @owner [....]
// @backupOwner [....] 
//--------------------------------------------------------------------- 

using System.Data.Common.CommandTrees; 
namespace System.Data.Mapping.Update.Internal
{
    /// 
    /// Abstract implementation of node visitor that allows the specification of visit methods 
    /// for different node types (VisitPre virtual methods) and evaluation of nodes with respect
    /// to the typed (TReturn) return values of their children. 
    ///  
    /// 
    /// This is not a general purpose class. It is tailored to the needs of the update pipeline. 
    ///
    /// All virtual methods throw NotSupportedException (must be explicitly overridden by each visitor).
    /// 
    /// Return type for the visitor 
    internal abstract class UpdateExpressionVisitor : DbExpressionVisitor
    { 
        ///  
        /// Gets the name of this visitor for debugging and tracing purposes.
        ///  
        protected abstract string VisitorName
        {
            get;
        } 

        ///  
        /// Utility method to generate an exception when unsupported node types are encountered. 
        /// 
        /// Unsupported node 
        /// Not supported exception
        protected NotSupportedException ConstructNotSupportedException(DbExpression node)
        {
            string nodeKind = null == node ? null : 
                node.ExpressionKind.ToString();
 
            return EntityUtil.NotSupported( 
                System.Data.Entity.Strings.Update_UnsupportedExpressionKind(nodeKind, VisitorName));
        } 

        #region IExpressionVisitor Members
        public override TReturn Visit(DbExpression expression)
        { 
            if (null != expression)
            { 
                return expression.Accept(this); 
            }
            else 
            {
                throw ConstructNotSupportedException(expression);
            }
        } 

        public override TReturn Visit(DbAndExpression expression) 
        { 
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbApplyExpression expression)
        {
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbArithmeticExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        }

        public override TReturn Visit(DbCaseExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        } 
 
        public override TReturn Visit(DbCastExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        }

        public override TReturn Visit(DbComparisonExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        } 

        public override TReturn Visit(DbConstantExpression expression) 
        {
            throw ConstructNotSupportedException(expression);
        }
 
        public override TReturn Visit(DbCrossJoinExpression expression)
        { 
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbDerefExpression expression)
        {
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbDistinctExpression expression) 
        { 
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbElementExpression expression)
        {
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbExceptExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        }

        public override TReturn Visit(DbFilterExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        } 
 
        public override TReturn Visit(DbFunctionExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        }

        public override TReturn Visit(DbEntityRefExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        } 

        public override TReturn Visit(DbRefKeyExpression expression) 
        {
            throw ConstructNotSupportedException(expression);
        }
 
        public override TReturn Visit(DbGroupByExpression expression)
        { 
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbIntersectExpression expression)
        {
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbIsEmptyExpression expression) 
        { 
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbIsNullExpression expression)
        {
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbIsOfExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        }

        public override TReturn Visit(DbJoinExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        } 
 
        public override TReturn Visit(DbLikeExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        }

        public override TReturn Visit(DbLimitExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        } 

#if METHOD_EXPRESSION 
        public override TReturn Visit(MethodExpression expression)
        {
            throw ConstructNotSupportedException(expression);
        } 
#endif
 
        public override TReturn Visit(DbNewInstanceExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        }

        public override TReturn Visit(DbNotExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        } 
 
        public override TReturn Visit(DbNullExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        }

        public override TReturn Visit(DbOfTypeExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        } 

        public override TReturn Visit(DbOrExpression expression) 
        {
            throw ConstructNotSupportedException(expression);
        }
 
        public override TReturn Visit(DbParameterReferenceExpression expression)
        { 
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbProjectExpression expression)
        {
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbPropertyExpression expression) 
        { 
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbQuantifierExpression expression)
        {
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbRefExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        }

        public override TReturn Visit(DbRelationshipNavigationExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        } 
 
        public override TReturn Visit(DbSkipExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        }

        public override TReturn Visit(DbSortExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        } 

        public override TReturn Visit(DbTreatExpression expression) 
        {
            throw ConstructNotSupportedException(expression);
        }
 
        public override TReturn Visit(DbUnionAllExpression expression)
        { 
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbVariableReferenceExpression expression)
        {
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbScanExpression expression) 
        { 
            throw ConstructNotSupportedException(expression);
        } 
        #endregion
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// 
// @owner [....]
// @backupOwner [....] 
//--------------------------------------------------------------------- 

using System.Data.Common.CommandTrees; 
namespace System.Data.Mapping.Update.Internal
{
    /// 
    /// Abstract implementation of node visitor that allows the specification of visit methods 
    /// for different node types (VisitPre virtual methods) and evaluation of nodes with respect
    /// to the typed (TReturn) return values of their children. 
    ///  
    /// 
    /// This is not a general purpose class. It is tailored to the needs of the update pipeline. 
    ///
    /// All virtual methods throw NotSupportedException (must be explicitly overridden by each visitor).
    /// 
    /// Return type for the visitor 
    internal abstract class UpdateExpressionVisitor : DbExpressionVisitor
    { 
        ///  
        /// Gets the name of this visitor for debugging and tracing purposes.
        ///  
        protected abstract string VisitorName
        {
            get;
        } 

        ///  
        /// Utility method to generate an exception when unsupported node types are encountered. 
        /// 
        /// Unsupported node 
        /// Not supported exception
        protected NotSupportedException ConstructNotSupportedException(DbExpression node)
        {
            string nodeKind = null == node ? null : 
                node.ExpressionKind.ToString();
 
            return EntityUtil.NotSupported( 
                System.Data.Entity.Strings.Update_UnsupportedExpressionKind(nodeKind, VisitorName));
        } 

        #region IExpressionVisitor Members
        public override TReturn Visit(DbExpression expression)
        { 
            if (null != expression)
            { 
                return expression.Accept(this); 
            }
            else 
            {
                throw ConstructNotSupportedException(expression);
            }
        } 

        public override TReturn Visit(DbAndExpression expression) 
        { 
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbApplyExpression expression)
        {
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbArithmeticExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        }

        public override TReturn Visit(DbCaseExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        } 
 
        public override TReturn Visit(DbCastExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        }

        public override TReturn Visit(DbComparisonExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        } 

        public override TReturn Visit(DbConstantExpression expression) 
        {
            throw ConstructNotSupportedException(expression);
        }
 
        public override TReturn Visit(DbCrossJoinExpression expression)
        { 
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbDerefExpression expression)
        {
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbDistinctExpression expression) 
        { 
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbElementExpression expression)
        {
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbExceptExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        }

        public override TReturn Visit(DbFilterExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        } 
 
        public override TReturn Visit(DbFunctionExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        }

        public override TReturn Visit(DbEntityRefExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        } 

        public override TReturn Visit(DbRefKeyExpression expression) 
        {
            throw ConstructNotSupportedException(expression);
        }
 
        public override TReturn Visit(DbGroupByExpression expression)
        { 
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbIntersectExpression expression)
        {
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbIsEmptyExpression expression) 
        { 
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbIsNullExpression expression)
        {
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbIsOfExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        }

        public override TReturn Visit(DbJoinExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        } 
 
        public override TReturn Visit(DbLikeExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        }

        public override TReturn Visit(DbLimitExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        } 

#if METHOD_EXPRESSION 
        public override TReturn Visit(MethodExpression expression)
        {
            throw ConstructNotSupportedException(expression);
        } 
#endif
 
        public override TReturn Visit(DbNewInstanceExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        }

        public override TReturn Visit(DbNotExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        } 
 
        public override TReturn Visit(DbNullExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        }

        public override TReturn Visit(DbOfTypeExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        } 

        public override TReturn Visit(DbOrExpression expression) 
        {
            throw ConstructNotSupportedException(expression);
        }
 
        public override TReturn Visit(DbParameterReferenceExpression expression)
        { 
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbProjectExpression expression)
        {
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbPropertyExpression expression) 
        { 
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbQuantifierExpression expression)
        {
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbRefExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        }

        public override TReturn Visit(DbRelationshipNavigationExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        } 
 
        public override TReturn Visit(DbSkipExpression expression)
        { 
            throw ConstructNotSupportedException(expression);
        }

        public override TReturn Visit(DbSortExpression expression) 
        {
            throw ConstructNotSupportedException(expression); 
        } 

        public override TReturn Visit(DbTreatExpression expression) 
        {
            throw ConstructNotSupportedException(expression);
        }
 
        public override TReturn Visit(DbUnionAllExpression expression)
        { 
            throw ConstructNotSupportedException(expression); 
        }
 
        public override TReturn Visit(DbVariableReferenceExpression expression)
        {
            throw ConstructNotSupportedException(expression);
        } 

        public override TReturn Visit(DbScanExpression expression) 
        { 
            throw ConstructNotSupportedException(expression);
        } 
        #endregion
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK