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
- PartitionedStream.cs
- returneventsaver.cs
- SpeechSynthesizer.cs
- EntityDataSourceChangingEventArgs.cs
- RTLAwareMessageBox.cs
- CollectionViewSource.cs
- DataView.cs
- EventEntry.cs
- ActivityInstanceReference.cs
- Utility.cs
- ResolveCriteriaApril2005.cs
- Subtree.cs
- BitmapFrame.cs
- PropertyOrder.cs
- FreezableDefaultValueFactory.cs
- ContextMenuStrip.cs
- OleDbFactory.cs
- DocumentViewerBase.cs
- _NegotiateClient.cs
- AutoGeneratedFieldProperties.cs
- WebPartExportVerb.cs
- UseManagedPresentationElement.cs
- StorageEntityContainerMapping.cs
- PageBuildProvider.cs
- Vector3DConverter.cs
- _DisconnectOverlappedAsyncResult.cs
- IOException.cs
- FtpWebResponse.cs
- BuilderPropertyEntry.cs
- DomainLiteralReader.cs
- ScriptModule.cs
- Int16.cs
- TypeGeneratedEventArgs.cs
- MatrixValueSerializer.cs
- ObjectStateEntryDbDataRecord.cs
- SwitchExpression.cs
- XmlnsDefinitionAttribute.cs
- _NtlmClient.cs
- UrlParameterWriter.cs
- QilIterator.cs
- MetadataConversionError.cs
- EventRoute.cs
- DeadCharTextComposition.cs
- SeparatorAutomationPeer.cs
- RealProxy.cs
- XmlValidatingReader.cs
- WsatServiceAddress.cs
- XmlTextAttribute.cs
- HttpCacheParams.cs
- OleDbErrorCollection.cs
- StructureChangedEventArgs.cs
- ColumnCollection.cs
- ValidationRule.cs
- ServicePointManagerElement.cs
- TypeInitializationException.cs
- FormatterConverter.cs
- TextEncodedRawTextWriter.cs
- HasCopySemanticsAttribute.cs
- Triplet.cs
- ToggleButtonAutomationPeer.cs
- BasicExpressionVisitor.cs
- DataGridView.cs
- SpStreamWrapper.cs
- HighContrastHelper.cs
- DataGridViewColumnHeaderCell.cs
- CTreeGenerator.cs
- LookupBindingPropertiesAttribute.cs
- SourceFileBuildProvider.cs
- DictionarySectionHandler.cs
- CngUIPolicy.cs
- SessionEndingEventArgs.cs
- ChoiceConverter.cs
- DataGrid.cs
- HandlerMappingMemo.cs
- ItemCheckedEvent.cs
- DataServiceConfiguration.cs
- ErrorHandler.cs
- FuncCompletionCallbackWrapper.cs
- WindowsFormsLinkLabel.cs
- OutOfProcStateClientManager.cs
- NullableFloatMinMaxAggregationOperator.cs
- Journal.cs
- RuleSettings.cs
- DataColumnCollection.cs
- HtmlInputControl.cs
- ProfileGroupSettingsCollection.cs
- PeerDuplexChannel.cs
- BridgeDataReader.cs
- IntegerValidatorAttribute.cs
- XmlSchemaAnnotated.cs
- ImageSourceValueSerializer.cs
- HyperLinkColumn.cs
- WindowsFont.cs
- RemoteWebConfigurationHost.cs
- AssociationEndMember.cs
- WebResponse.cs
- FusionWrap.cs
- HttpModuleActionCollection.cs
- ContainerFilterService.cs
- DbSource.cs