Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / followingquery.cs / 1305376 / followingquery.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
using System;
using System.Xml;
using System.Xml.XPath;
using System.Diagnostics;
internal sealed class FollowingQuery : BaseAxisQuery {
private XPathNavigator input;
private XPathNodeIterator iterator;
public FollowingQuery(Query qyInput, string name, string prefix, XPathNodeType typeTest) : base(qyInput, name, prefix, typeTest) {}
private FollowingQuery(FollowingQuery other) : base(other) {
this.input = Clone(other.input);
this.iterator = Clone(other.iterator);
}
public override void Reset() {
iterator = null;
base.Reset();
}
public override XPathNavigator Advance() {
if (iterator == null) {
input = qyInput.Advance();
if (input == null) {
return null;
}
XPathNavigator prev;
do {
prev = input.Clone();
input = qyInput.Advance();
} while (prev.IsDescendant(input));
input = prev;
iterator = XPathEmptyIterator.Instance;
}
while (! iterator.MoveNext()) {
bool matchSelf;
if (input.NodeType == XPathNodeType.Attribute || input.NodeType == XPathNodeType.Namespace) {
input.MoveToParent();
matchSelf = false;
} else {
while (! input.MoveToNext()) {
if (! input.MoveToParent()) {
return null;
}
}
matchSelf = true;
}
if (NameTest) {
iterator = input.SelectDescendants(Name, Namespace, matchSelf);
} else {
iterator = input.SelectDescendants(TypeTest, matchSelf);
}
}
position++;
currentNode = iterator.Current;
return currentNode;
}
public override XPathNodeIterator Clone() { return new FollowingQuery(this); }
}
}
// 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
- ProcessDesigner.cs
- Simplifier.cs
- CodeRemoveEventStatement.cs
- CodeCompiler.cs
- _RequestLifetimeSetter.cs
- BitmapVisualManager.cs
- ThreadSafeList.cs
- MiniModule.cs
- ExtensionFile.cs
- ValueExpressions.cs
- BatchStream.cs
- LazyTextWriterCreator.cs
- LineInfo.cs
- DbMetaDataCollectionNames.cs
- CodeArrayCreateExpression.cs
- OAVariantLib.cs
- HttpHandlersSection.cs
- EdmItemError.cs
- SQLUtility.cs
- TextProviderWrapper.cs
- CodeCatchClauseCollection.cs
- WorkflowMarkupSerializationException.cs
- StateBag.cs
- _HTTPDateParse.cs
- UpdateDelegates.Generated.cs
- SystemFonts.cs
- GridViewColumnHeaderAutomationPeer.cs
- EventlogProvider.cs
- HttpWriter.cs
- XPathNodePointer.cs
- FileStream.cs
- SoapHeaders.cs
- FigureParagraph.cs
- DateTimeValueSerializerContext.cs
- TranslateTransform3D.cs
- MatrixValueSerializer.cs
- followingquery.cs
- DesignerWebPartChrome.cs
- SkewTransform.cs
- Message.cs
- FontFamilyIdentifier.cs
- ContextStack.cs
- EventManager.cs
- SynchronizedInputPattern.cs
- SendAgentStatusRequest.cs
- RTLAwareMessageBox.cs
- CommonDialog.cs
- BindingValueChangedEventArgs.cs
- MobileContainerDesigner.cs
- ConfigurationStrings.cs
- ToolboxItemFilterAttribute.cs
- DataGridViewColumn.cs
- Page.cs
- Root.cs
- PropertyRef.cs
- XmlDomTextWriter.cs
- SHA1CryptoServiceProvider.cs
- XslTransform.cs
- EventMappingSettings.cs
- DataGridViewCellValidatingEventArgs.cs
- PerformanceCounterPermission.cs
- UnionCodeGroup.cs
- BodyGlyph.cs
- XmlText.cs
- _UncName.cs
- Win32.cs
- NoClickablePointException.cs
- PrivilegedConfigurationManager.cs
- DropTarget.cs
- ShaderEffect.cs
- ColumnClickEvent.cs
- AuthorizationRuleCollection.cs
- ContextStack.cs
- PasswordTextContainer.cs
- KeyedHashAlgorithm.cs
- FormsAuthenticationModule.cs
- KnownBoxes.cs
- SectionVisual.cs
- XmlFileEditor.cs
- WebPartConnectVerb.cs
- Registration.cs
- AttachedAnnotation.cs
- InfoCardBaseException.cs
- InputBinder.cs
- QueryResponse.cs
- COM2IProvidePropertyBuilderHandler.cs
- MultiView.cs
- EpmSourcePathSegment.cs
- ResourceDescriptionAttribute.cs
- ToolboxDataAttribute.cs
- XmlSchemaIdentityConstraint.cs
- FontStyleConverter.cs
- XmlArrayAttribute.cs
- objectquery_tresulttype.cs
- Timeline.cs
- Odbc32.cs
- DetailsViewPagerRow.cs
- ContentOperations.cs
- UnaryNode.cs
- TagPrefixCollection.cs