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
- NeutralResourcesLanguageAttribute.cs
- HMACMD5.cs
- ObjectListItemCollection.cs
- NameService.cs
- LambdaCompiler.Address.cs
- TextTreePropertyUndoUnit.cs
- ControlBuilder.cs
- DefaultBinder.cs
- Win32KeyboardDevice.cs
- TreeNodeCollection.cs
- CreateBookmarkScope.cs
- XPathSelectionIterator.cs
- SqlProfileProvider.cs
- SafeFileMapViewHandle.cs
- EncoderReplacementFallback.cs
- RecordConverter.cs
- HostingEnvironment.cs
- NamespaceList.cs
- Bidi.cs
- ScrollChangedEventArgs.cs
- DataColumnChangeEvent.cs
- SafeTimerHandle.cs
- RangeContentEnumerator.cs
- FileStream.cs
- TheQuery.cs
- Directory.cs
- Group.cs
- DesignerActionKeyboardBehavior.cs
- MergeFailedEvent.cs
- TemplateParser.cs
- VirtualDirectoryMapping.cs
- OrCondition.cs
- ScrollItemProviderWrapper.cs
- TextDecorationUnitValidation.cs
- SelectionEditingBehavior.cs
- DurableInstance.cs
- Hash.cs
- BaseParagraph.cs
- XmlCompatibilityReader.cs
- WhitespaceRuleLookup.cs
- AutomationPropertyInfo.cs
- WindowsGraphicsWrapper.cs
- SqlConnectionStringBuilder.cs
- DelegateArgument.cs
- PrimitiveType.cs
- DependencyProperty.cs
- TypeDependencyAttribute.cs
- CodeIdentifiers.cs
- MetadataArtifactLoaderCompositeFile.cs
- DataGridViewCellValidatingEventArgs.cs
- _DomainName.cs
- UserPreferenceChangedEventArgs.cs
- TimeSpan.cs
- XmlDataLoader.cs
- XmlValueConverter.cs
- SessionStateItemCollection.cs
- RtfControlWordInfo.cs
- OAVariantLib.cs
- ButtonStandardAdapter.cs
- MethodBuilder.cs
- FormViewRow.cs
- CommandLibraryHelper.cs
- SqlDataSourceConfigureSortForm.cs
- ConnectivityStatus.cs
- PropertyNames.cs
- DeclarativeCatalogPart.cs
- ListBoxItemAutomationPeer.cs
- SafeCryptoHandles.cs
- DBConcurrencyException.cs
- Point.cs
- CodeDirectoryCompiler.cs
- mongolianshape.cs
- ThreadWorkerController.cs
- MarshalByRefObject.cs
- ByteKeyFrameCollection.cs
- TimeStampChecker.cs
- ValidationSummaryDesigner.cs
- OutputCacheProfileCollection.cs
- GlyphRun.cs
- AudioException.cs
- HttpValueCollection.cs
- ContainerSelectorGlyph.cs
- DataFieldEditor.cs
- RuntimeIdentifierPropertyAttribute.cs
- DataGridCellClipboardEventArgs.cs
- columnmapkeybuilder.cs
- ReceiveMessageRecord.cs
- SoapEnumAttribute.cs
- initElementDictionary.cs
- ToolStripDropDownButton.cs
- TrustLevelCollection.cs
- XmlMtomWriter.cs
- BorderGapMaskConverter.cs
- XmlKeywords.cs
- HScrollBar.cs
- WebChannelFactory.cs
- ContextMenuAutomationPeer.cs
- SQLDateTime.cs
- ArrayMergeHelper.cs
- BinHexDecoder.cs