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
- SqlDesignerDataSourceView.cs
- LingerOption.cs
- AppSettingsSection.cs
- MarkupProperty.cs
- GroupBox.cs
- OperandQuery.cs
- Update.cs
- OdbcParameter.cs
- HttpDebugHandler.cs
- SuppressIldasmAttribute.cs
- ExtractorMetadata.cs
- DataErrorValidationRule.cs
- MenuAutomationPeer.cs
- KeyConverter.cs
- EventlogProvider.cs
- ClockGroup.cs
- XmlnsDefinitionAttribute.cs
- XmlWrappingWriter.cs
- EnumDataContract.cs
- DataGridHeaderBorder.cs
- SetterBase.cs
- FormViewInsertedEventArgs.cs
- DependentList.cs
- SolidColorBrush.cs
- InternalPermissions.cs
- PropertyItemInternal.cs
- OverflowException.cs
- RawStylusInputCustomData.cs
- WebBrowserPermission.cs
- DataSourceControlBuilder.cs
- LineBreak.cs
- WebControlAdapter.cs
- NGCSerializationManager.cs
- AsynchronousChannel.cs
- DragDropManager.cs
- PropertyGeneratedEventArgs.cs
- CallSite.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- ListView.cs
- ProfilePropertySettingsCollection.cs
- ListSortDescription.cs
- PolicyLevel.cs
- Size3D.cs
- GenericIdentity.cs
- ImageList.cs
- TcpServerChannel.cs
- ExtractorMetadata.cs
- ActivityValidator.cs
- SecurityManager.cs
- RSAPKCS1SignatureFormatter.cs
- XomlCompiler.cs
- odbcmetadatafactory.cs
- _BasicClient.cs
- DataBindingHandlerAttribute.cs
- DrawItemEvent.cs
- TreeView.cs
- UpdateManifestForBrowserApplication.cs
- DoubleSumAggregationOperator.cs
- SmtpMail.cs
- DateTimeFormatInfoScanner.cs
- DiscreteKeyFrames.cs
- FacetChecker.cs
- MulticastDelegate.cs
- TextRange.cs
- SecurityBindingElementImporter.cs
- EntityTypeEmitter.cs
- FormsAuthenticationEventArgs.cs
- XhtmlBasicFormAdapter.cs
- CompositeActivityTypeDescriptorProvider.cs
- SchemaImporterExtensionsSection.cs
- ExtenderControl.cs
- ActionItem.cs
- HttpBufferlessInputStream.cs
- ProfileBuildProvider.cs
- NamespaceList.cs
- MarginsConverter.cs
- NumberFormatInfo.cs
- SafeRightsManagementSessionHandle.cs
- DataControlFieldHeaderCell.cs
- TemplatedMailWebEventProvider.cs
- FixedSOMPage.cs
- EnumerationRangeValidationUtil.cs
- ColumnBinding.cs
- DataColumnMapping.cs
- CSharpCodeProvider.cs
- LayoutManager.cs
- AssociationEndMember.cs
- StructuralType.cs
- DecimalStorage.cs
- SelectionItemPattern.cs
- KeyedCollection.cs
- ScaleTransform.cs
- SmtpSection.cs
- CommandField.cs
- CurrentTimeZone.cs
- DrawToolTipEventArgs.cs
- RTLAwareMessageBox.cs
- WinInet.cs
- ResourceDictionary.cs
- WebResourceAttribute.cs