Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Map / Update / Internal / UpdateExpressionVisitor.cs / 1305376 / 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(DbLambdaExpression 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

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GAC.cs
- StreamInfo.cs
- BaseParagraph.cs
- CommandHelpers.cs
- TreePrinter.cs
- LinqDataSourceView.cs
- thaishape.cs
- AnimationException.cs
- EntityProxyTypeInfo.cs
- WSDualHttpSecurityElement.cs
- BeginEvent.cs
- SolidColorBrush.cs
- AnnotationAuthorChangedEventArgs.cs
- DataGridCellInfo.cs
- VirtualDirectoryMapping.cs
- MenuItem.cs
- BindingsCollection.cs
- StringKeyFrameCollection.cs
- DBSchemaTable.cs
- SelectionItemPattern.cs
- UserMapPath.cs
- Visual3D.cs
- WebControlToolBoxItem.cs
- CompressionTracing.cs
- SqlCrossApplyToCrossJoin.cs
- IResourceProvider.cs
- WebServiceErrorEvent.cs
- TaskScheduler.cs
- ListItemViewControl.cs
- SqlExpander.cs
- SystemIcons.cs
- SimpleApplicationHost.cs
- AutomationPropertyInfo.cs
- RequestCachePolicy.cs
- PEFileReader.cs
- NotSupportedException.cs
- DataGridViewSortCompareEventArgs.cs
- TextRunProperties.cs
- FileChangesMonitor.cs
- SystemIPInterfaceStatistics.cs
- XmlILAnnotation.cs
- Int64Animation.cs
- SSmlParser.cs
- ContentElementAutomationPeer.cs
- WebControl.cs
- EntityDataSourceWizardForm.cs
- XmlQueryCardinality.cs
- SchemaTableColumn.cs
- DictionaryTraceRecord.cs
- Msec.cs
- InternalControlCollection.cs
- SignatureToken.cs
- XmlMtomReader.cs
- DropSource.cs
- EmptyEnumerator.cs
- PublisherMembershipCondition.cs
- StickyNote.cs
- Interlocked.cs
- CallInfo.cs
- ChtmlMobileTextWriter.cs
- WebPartCollection.cs
- BindingList.cs
- FunctionNode.cs
- ConnectionInterfaceCollection.cs
- IntSecurity.cs
- CornerRadius.cs
- Misc.cs
- KeyNotFoundException.cs
- PeerObject.cs
- BrowsableAttribute.cs
- TraceHandlerErrorFormatter.cs
- RealProxy.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- ContextMenu.cs
- Positioning.cs
- WinCategoryAttribute.cs
- ToolBar.cs
- XmlSchemaSet.cs
- DataSourceSerializationException.cs
- Size.cs
- Claim.cs
- Lazy.cs
- ILGenerator.cs
- ThumbButtonInfo.cs
- DataRelationCollection.cs
- NamespaceEmitter.cs
- TrustManagerPromptUI.cs
- FormatVersion.cs
- PackagingUtilities.cs
- COM2PropertyDescriptor.cs
- QilUnary.cs
- RuntimeEnvironment.cs
- DeobfuscatingStream.cs
- ChineseLunisolarCalendar.cs
- Ray3DHitTestResult.cs
- SessionStateModule.cs
- DrawingContext.cs
- MimeReturn.cs
- BookmarkScope.cs
- EditorPartDesigner.cs