Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Query / InternalTrees / NodeCounter.cs / 1305376 / NodeCounter.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Diagnostics;
using System.Data.Common;
using md=System.Data.Metadata.Edm;
namespace System.Data.Query.InternalTrees
{
///
/// Counts the number of nodes in a tree
///
internal class NodeCounter : BasicOpVisitorOfT
{
///
/// Public entry point - Calculates the nubmer of nodes in the given subTree
///
///
///
internal static int Count(Node subTree)
{
NodeCounter counter = new NodeCounter();
return counter.VisitNode(subTree);
}
///
/// Common processing for all node types
/// Count = 1 (self) + count of children
///
///
///
protected override int VisitDefault(Node n)
{
int count = 1;
foreach (Node child in n.Children)
{
count += VisitNode(child);
}
return count;
}
}
}
// 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
- ErrorHandler.cs
- QueryGenerator.cs
- TextUtf8RawTextWriter.cs
- DropAnimation.xaml.cs
- TypeGeneratedEventArgs.cs
- ModulesEntry.cs
- StoreUtilities.cs
- TimeSpanConverter.cs
- FilteredReadOnlyMetadataCollection.cs
- LicFileLicenseProvider.cs
- FilteredReadOnlyMetadataCollection.cs
- UnsafeNativeMethods.cs
- TextPenaltyModule.cs
- PackageRelationshipSelector.cs
- SourceItem.cs
- TableLayoutPanelCellPosition.cs
- GridViewSelectEventArgs.cs
- MsmqOutputChannel.cs
- DataContractAttribute.cs
- SynchronizationLockException.cs
- GlobalizationAssembly.cs
- AsymmetricKeyExchangeDeformatter.cs
- Annotation.cs
- ColorAnimation.cs
- DataStorage.cs
- HelpProvider.cs
- AttachmentCollection.cs
- DecoderReplacementFallback.cs
- ServiceBehaviorElementCollection.cs
- GradientStop.cs
- MetadataItem.cs
- PngBitmapDecoder.cs
- MD5.cs
- GeometryDrawing.cs
- SafeNativeMethods.cs
- ArraySortHelper.cs
- StatusBarDrawItemEvent.cs
- ReceiveActivityValidator.cs
- DeleteIndexBinder.cs
- listitem.cs
- Privilege.cs
- ProxyWebPartManager.cs
- TCPClient.cs
- AsnEncodedData.cs
- PreProcessor.cs
- ToolStripItemDesigner.cs
- InputMethodStateChangeEventArgs.cs
- RequestQueryParser.cs
- PolyQuadraticBezierSegment.cs
- DateTimeOffsetConverter.cs
- XmlQueryTypeFactory.cs
- MatrixStack.cs
- DesignerActionPanel.cs
- PageAsyncTask.cs
- CacheMode.cs
- CreateUserErrorEventArgs.cs
- ElementHost.cs
- PersonalizationAdministration.cs
- PageCodeDomTreeGenerator.cs
- PasswordPropertyTextAttribute.cs
- MemoryFailPoint.cs
- MatrixStack.cs
- MSAANativeProvider.cs
- EntityStoreSchemaGenerator.cs
- RadioButtonRenderer.cs
- ComplusEndpointConfigContainer.cs
- ZipArchive.cs
- TabletDevice.cs
- HierarchicalDataTemplate.cs
- XPathItem.cs
- Helpers.cs
- HierarchicalDataSourceIDConverter.cs
- Random.cs
- DataMisalignedException.cs
- SimpleBitVector32.cs
- GlyphElement.cs
- SocketPermission.cs
- ConfigDefinitionUpdates.cs
- SafeViewOfFileHandle.cs
- WithParamAction.cs
- ShapingWorkspace.cs
- TemplateFactory.cs
- CompositionAdorner.cs
- CodeBinaryOperatorExpression.cs
- _LocalDataStoreMgr.cs
- ExpanderAutomationPeer.cs
- TypedReference.cs
- HostTimeoutsElement.cs
- DocumentPageHost.cs
- AssociationEndMember.cs
- StructureChangedEventArgs.cs
- InputMethodStateChangeEventArgs.cs
- CryptoKeySecurity.cs
- grammarelement.cs
- Exceptions.cs
- DataColumnMappingCollection.cs
- StatusBarPanelClickEvent.cs
- PageBuildProvider.cs
- RepeaterItemEventArgs.cs
- PerspectiveCamera.cs