Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / CommandTrees / BasicCommandTreeVisitor.cs / 1305376 / BasicCommandTreeVisitor.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System.Collections.Generic; using System.Diagnostics; using System.Data.Metadata.Edm; namespace System.Data.Common.CommandTrees { ////// An abstract base type for types that implement the IExpressionVisitor interface to derive from. /// /*CQT_PUBLIC_API(*/internal/*)*/ abstract class BasicCommandTreeVisitor : BasicExpressionVisitor { #region protected API, may be overridden to add functionality at specific points in the traversal protected virtual void VisitSetClause(DbSetClause setClause) { EntityUtil.CheckArgumentNull(setClause, "setClause"); this.VisitExpression(setClause.Property); this.VisitExpression(setClause.Value); } protected virtual void VisitModificationClause(DbModificationClause modificationClause) { EntityUtil.CheckArgumentNull(modificationClause, "modificationClause"); // Set clause is the only current possibility this.VisitSetClause((DbSetClause)modificationClause); } protected virtual void VisitModificationClauses(IListmodificationClauses) { EntityUtil.CheckArgumentNull(modificationClauses, "modificationClauses"); for (int idx = 0; idx < modificationClauses.Count; idx++) { this.VisitModificationClause(modificationClauses[idx]); } } #endregion #region public convenience API public virtual void VisitCommandTree(DbCommandTree commandTree) { EntityUtil.CheckArgumentNull(commandTree, "commandTree"); switch (commandTree.CommandTreeKind) { case DbCommandTreeKind.Delete: this.VisitDeleteCommandTree((DbDeleteCommandTree)commandTree); break; case DbCommandTreeKind.Function: this.VisitFunctionCommandTree((DbFunctionCommandTree)commandTree); break; case DbCommandTreeKind.Insert: this.VisitInsertCommandTree((DbInsertCommandTree)commandTree); break; case DbCommandTreeKind.Query: this.VisitQueryCommandTree((DbQueryCommandTree)commandTree); break; case DbCommandTreeKind.Update: this.VisitUpdateCommandTree((DbUpdateCommandTree)commandTree); break; default: throw EntityUtil.NotSupported(); } } #endregion #region CommandTree-specific Visitor Methods protected virtual void VisitDeleteCommandTree(DbDeleteCommandTree deleteTree) { EntityUtil.CheckArgumentNull(deleteTree, "deleteTree"); this.VisitExpressionBindingPre(deleteTree.Target); this.VisitExpression(deleteTree.Predicate); this.VisitExpressionBindingPost(deleteTree.Target); } protected virtual void VisitFunctionCommandTree(DbFunctionCommandTree functionTree) { EntityUtil.CheckArgumentNull(functionTree, "functionTree"); } protected virtual void VisitInsertCommandTree(DbInsertCommandTree insertTree) { EntityUtil.CheckArgumentNull(insertTree, "insertTree"); this.VisitExpressionBindingPre(insertTree.Target); this.VisitModificationClauses(insertTree.SetClauses); if (insertTree.Returning != null) { this.VisitExpression(insertTree.Returning); } this.VisitExpressionBindingPost(insertTree.Target); } protected virtual void VisitQueryCommandTree(DbQueryCommandTree queryTree) { EntityUtil.CheckArgumentNull(queryTree, "queryTree"); this.VisitExpression(queryTree.Query); } protected virtual void VisitUpdateCommandTree(DbUpdateCommandTree updateTree) { EntityUtil.CheckArgumentNull(updateTree, "updateTree"); this.VisitExpressionBindingPre(updateTree.Target); this.VisitModificationClauses(updateTree.SetClauses); this.VisitExpression(updateTree.Predicate); if (updateTree.Returning != null) { this.VisitExpression(updateTree.Returning); } this.VisitExpressionBindingPost(updateTree.Target); } #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
- lengthconverter.cs
- OracleEncoding.cs
- RowVisual.cs
- SecurityKeyType.cs
- AspProxy.cs
- Size.cs
- UserNamePasswordValidator.cs
- IconBitmapDecoder.cs
- RSAPKCS1KeyExchangeFormatter.cs
- SqlCharStream.cs
- AsyncOperation.cs
- RtfToXamlReader.cs
- SHA1.cs
- UpdatePanelTriggerCollection.cs
- SourceInterpreter.cs
- TrustSection.cs
- ipaddressinformationcollection.cs
- DockingAttribute.cs
- SuppressMergeCheckAttribute.cs
- NextPreviousPagerField.cs
- TextRangeAdaptor.cs
- TransactionManager.cs
- EncoderExceptionFallback.cs
- WindowsScrollBarBits.cs
- TemplateBindingExtension.cs
- BooleanStorage.cs
- WindowsSysHeader.cs
- XPathParser.cs
- InputScopeAttribute.cs
- DiagnosticsConfigurationHandler.cs
- CharUnicodeInfo.cs
- QueryExtender.cs
- Page.cs
- ListControl.cs
- SqlDataSourceCache.cs
- uribuilder.cs
- UdpDuplexChannel.cs
- ReferenceSchema.cs
- UnsafeNativeMethodsTablet.cs
- GenericTypeParameterBuilder.cs
- RectKeyFrameCollection.cs
- MsmqOutputSessionChannel.cs
- Converter.cs
- Point3DKeyFrameCollection.cs
- ListCollectionView.cs
- DoubleConverter.cs
- CommentEmitter.cs
- SerializerDescriptor.cs
- HMAC.cs
- SwitchAttribute.cs
- MetadataUtil.cs
- ColorConvertedBitmapExtension.cs
- OpacityConverter.cs
- XmlSortKey.cs
- AccessDataSourceView.cs
- MarshalByValueComponent.cs
- LinqDataSourceContextData.cs
- RoutedEventValueSerializer.cs
- GridViewColumnHeaderAutomationPeer.cs
- FilePresentation.cs
- WsrmMessageInfo.cs
- AccessDataSource.cs
- SrgsDocumentParser.cs
- BindingCompleteEventArgs.cs
- NegationPusher.cs
- ImageField.cs
- InternalMappingException.cs
- EventLogReader.cs
- AsymmetricKeyExchangeFormatter.cs
- TableColumn.cs
- FontStyleConverter.cs
- X509InitiatorCertificateServiceElement.cs
- CircleHotSpot.cs
- XmlComment.cs
- DockingAttribute.cs
- PathFigureCollectionConverter.cs
- ListViewItem.cs
- Size.cs
- IIS7WorkerRequest.cs
- ConnectionManagementSection.cs
- PeerNearMe.cs
- ValueUtilsSmi.cs
- BuildProviderAppliesToAttribute.cs
- ArrangedElementCollection.cs
- CfgParser.cs
- CodeEventReferenceExpression.cs
- TemplateKey.cs
- SchemaRegistration.cs
- SoapReflectionImporter.cs
- RootBuilder.cs
- AssemblyBuilder.cs
- DoubleCollection.cs
- UnsafeNativeMethods.cs
- TypeDelegator.cs
- UrlAuthorizationModule.cs
- DataGridViewControlCollection.cs
- AppDomainUnloadedException.cs
- FilteredDataSetHelper.cs
- DrawingAttributes.cs
- CapabilitiesPattern.cs