Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------- // // 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
- PointHitTestParameters.cs
- ItemContainerPattern.cs
- SurrogateSelector.cs
- MatchingStyle.cs
- ConfigurationHandlersInstallComponent.cs
- ResourceKey.cs
- NetCodeGroup.cs
- Model3DCollection.cs
- Storyboard.cs
- AlphaSortedEnumConverter.cs
- autovalidator.cs
- SqlCrossApplyToCrossJoin.cs
- Tablet.cs
- BufferModeSettings.cs
- WindowsListViewGroup.cs
- ClientData.cs
- RangeValidator.cs
- LabelAutomationPeer.cs
- SqlPersonalizationProvider.cs
- WSDualHttpSecurity.cs
- ScaleTransform3D.cs
- XpsTokenContext.cs
- ParseChildrenAsPropertiesAttribute.cs
- GridSplitter.cs
- RewritingProcessor.cs
- ReadOnlyDataSourceView.cs
- DataGridViewTextBoxEditingControl.cs
- AndCondition.cs
- InlinedAggregationOperator.cs
- TextBoxBase.cs
- EditorZoneBase.cs
- GetReadStreamResult.cs
- MachineKeySection.cs
- BindUriHelper.cs
- GetIndexBinder.cs
- Model3D.cs
- DataControlFieldCell.cs
- PipeException.cs
- MessageDecoder.cs
- CurrentChangingEventManager.cs
- RoleExceptions.cs
- RadioButtonBaseAdapter.cs
- CalculatedColumn.cs
- hebrewshape.cs
- ValidationService.cs
- DmlSqlGenerator.cs
- GeneratedContractType.cs
- SpinLock.cs
- UriWriter.cs
- DecoderReplacementFallback.cs
- Version.cs
- Int32RectValueSerializer.cs
- CodeDirectoryCompiler.cs
- TextWriterTraceListener.cs
- CursorConverter.cs
- XmlArrayItemAttributes.cs
- ModuleBuilder.cs
- DynamicContractTypeBuilder.cs
- Block.cs
- TextTreeRootNode.cs
- OdbcPermission.cs
- OutputCacheSettings.cs
- EntityStoreSchemaGenerator.cs
- SafeEventHandle.cs
- AxisAngleRotation3D.cs
- TcpWorkerProcess.cs
- RSAPKCS1KeyExchangeFormatter.cs
- EntityDataSourceStatementEditor.cs
- ByteKeyFrameCollection.cs
- EntityTypeEmitter.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- XmlSchemaType.cs
- ETagAttribute.cs
- Crc32.cs
- NativeWindow.cs
- Material.cs
- SmiEventSink_Default.cs
- Internal.cs
- ParseChildrenAsPropertiesAttribute.cs
- WebPartConnectionsCloseVerb.cs
- EFTableProvider.cs
- InvalidateEvent.cs
- DesignerGenericWebPart.cs
- Main.cs
- WindowsFont.cs
- NativeMethodsOther.cs
- LifetimeServices.cs
- WebPartHelpVerb.cs
- UnionCodeGroup.cs
- Sql8ConformanceChecker.cs
- ButtonPopupAdapter.cs
- StructuredProperty.cs
- SqlRetyper.cs
- TdsRecordBufferSetter.cs
- GridViewSortEventArgs.cs
- SHA1.cs
- IInstanceContextProvider.cs
- OdbcRowUpdatingEvent.cs
- DirectoryLocalQuery.cs
- BeginGetFileNameFromUserRequest.cs