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
- ObjectSet.cs
- PolygonHotSpot.cs
- KeyConverter.cs
- odbcmetadatacolumnnames.cs
- DefaultTextStore.cs
- MultitargetingHelpers.cs
- TrackPoint.cs
- HighContrastHelper.cs
- DocumentAutomationPeer.cs
- SmtpTransport.cs
- TemplateComponentConnector.cs
- CodeArrayIndexerExpression.cs
- LocalValueEnumerator.cs
- GregorianCalendarHelper.cs
- MetabaseSettingsIis7.cs
- PointHitTestParameters.cs
- DependentList.cs
- TextTreeRootNode.cs
- XmlCDATASection.cs
- StylusDownEventArgs.cs
- HealthMonitoringSectionHelper.cs
- InternalCache.cs
- Transaction.cs
- ChangeDirector.cs
- Automation.cs
- ClientCredentialsSecurityTokenManager.cs
- SafePEFileHandle.cs
- EncryptedData.cs
- ResXBuildProvider.cs
- ContainerControl.cs
- NumberSubstitution.cs
- MD5CryptoServiceProvider.cs
- RadioButtonFlatAdapter.cs
- LookupNode.cs
- SourceCollection.cs
- StreamingContext.cs
- _NestedSingleAsyncResult.cs
- BufferedMessageData.cs
- KeyFrames.cs
- Stack.cs
- UnmanagedMemoryStream.cs
- WindowsRebar.cs
- TimeSpanConverter.cs
- SocketElement.cs
- DeploymentSectionCache.cs
- AssemblyResolver.cs
- PackageRelationshipCollection.cs
- Crc32.cs
- SharedPersonalizationStateInfo.cs
- TimeSpan.cs
- odbcmetadatacollectionnames.cs
- CommandHelper.cs
- SocketStream.cs
- DmlSqlGenerator.cs
- HttpClientCertificate.cs
- TlsnegoTokenProvider.cs
- EqualityArray.cs
- AppendHelper.cs
- BookmarkInfo.cs
- Aggregates.cs
- TextTreePropertyUndoUnit.cs
- WebConfigManager.cs
- DataGridAddNewRow.cs
- DecoderFallback.cs
- cookiecollection.cs
- ToolStripPanel.cs
- DecimalAnimationBase.cs
- GridViewSortEventArgs.cs
- PermissionListSet.cs
- ItemCollection.cs
- GregorianCalendarHelper.cs
- TypeInfo.cs
- WebPartDescriptionCollection.cs
- XmlObjectSerializerReadContextComplexJson.cs
- LocalFileSettingsProvider.cs
- BooleanAnimationBase.cs
- DesignerCategoryAttribute.cs
- HttpsHostedTransportConfiguration.cs
- PasswordDeriveBytes.cs
- MethodExpr.cs
- NamespaceList.cs
- ClaimComparer.cs
- TextElementEditingBehaviorAttribute.cs
- OperationCanceledException.cs
- WsdlImporter.cs
- RenderingEventArgs.cs
- TiffBitmapDecoder.cs
- WorkflowApplicationTerminatedException.cs
- Matrix.cs
- RuleRef.cs
- DataGridViewTopRowAccessibleObject.cs
- WebControlToolBoxItem.cs
- TreeViewImageKeyConverter.cs
- LocalTransaction.cs
- TransformPatternIdentifiers.cs
- dataobject.cs
- MultiView.cs
- WebHttpBehavior.cs
- PersianCalendar.cs
- Assign.cs