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
- PageSettings.cs
- SafeFileMappingHandle.cs
- WmfPlaceableFileHeader.cs
- MemberInfoSerializationHolder.cs
- HtmlControlPersistable.cs
- ArithmeticException.cs
- ConfigViewGenerator.cs
- SqlDataReaderSmi.cs
- RMEnrollmentPage1.cs
- ExtendedPropertyCollection.cs
- QueryMatcher.cs
- TraceListener.cs
- TableRowGroup.cs
- BevelBitmapEffect.cs
- ComponentRenameEvent.cs
- TypeBuilderInstantiation.cs
- MediaScriptCommandRoutedEventArgs.cs
- DragStartedEventArgs.cs
- AstNode.cs
- CreationContext.cs
- MobileTemplatedControlDesigner.cs
- XmlAttributes.cs
- TextElementCollectionHelper.cs
- TextRangeSerialization.cs
- WebPermission.cs
- PartialCachingControl.cs
- HostingPreferredMapPath.cs
- ContextQuery.cs
- XmlSchemaProviderAttribute.cs
- ModelTreeEnumerator.cs
- SQLRoleProvider.cs
- ImpersonationContext.cs
- PropertyChange.cs
- DrawingContextDrawingContextWalker.cs
- DetailsView.cs
- ManagementScope.cs
- WebPartEditorOkVerb.cs
- EndSelectCardRequest.cs
- SystemParameters.cs
- Scene3D.cs
- TypeElementCollection.cs
- PeerNearMe.cs
- CachingHintValidation.cs
- ImageCollectionEditor.cs
- XmlWrappingReader.cs
- XDeferredAxisSource.cs
- TokenBasedSet.cs
- TextPatternIdentifiers.cs
- SoapTypeAttribute.cs
- SmtpClient.cs
- CodeCommentStatement.cs
- DPTypeDescriptorContext.cs
- MenuItemStyleCollection.cs
- SelectingProviderEventArgs.cs
- AsymmetricSignatureDeformatter.cs
- TimersDescriptionAttribute.cs
- SafeArchiveContext.cs
- MessagePartDescriptionCollection.cs
- StorageEntitySetMapping.cs
- ModelVisual3D.cs
- Compensation.cs
- StylusShape.cs
- TreeViewItem.cs
- DynamicHyperLink.cs
- AnchorEditor.cs
- EnumValidator.cs
- BorderGapMaskConverter.cs
- ServiceModelEnhancedConfigurationElementCollection.cs
- DataGridViewRowsRemovedEventArgs.cs
- DataGridViewRow.cs
- HttpInputStream.cs
- ValueChangedEventManager.cs
- StateManagedCollection.cs
- recordstatescratchpad.cs
- UmAlQuraCalendar.cs
- InputLanguageProfileNotifySink.cs
- SystemIPInterfaceProperties.cs
- RSAPKCS1KeyExchangeFormatter.cs
- SymmetricKeyWrap.cs
- MessageFormatterConverter.cs
- Stacktrace.cs
- SynchronizingStream.cs
- TreeNodeSelectionProcessor.cs
- TaskResultSetter.cs
- ObjectDataSourceWizardForm.cs
- ListBoxItem.cs
- HierarchicalDataSourceControl.cs
- ProfilePropertySettingsCollection.cs
- OrderedDictionary.cs
- WebEventTraceProvider.cs
- Button.cs
- autovalidator.cs
- ProjectionCamera.cs
- HttpDictionary.cs
- ScrollBarRenderer.cs
- _HeaderInfoTable.cs
- messageonlyhwndwrapper.cs
- LocalizeDesigner.cs
- WebServiceHost.cs
- BaseDataList.cs