Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / ContextQuery.cs / 1 / ContextQuery.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 class ContextQuery : Query { protected XPathNavigator contextNode; public ContextQuery() { this.count = 0; } protected ContextQuery(ContextQuery other) : base(other) { this.contextNode = other.contextNode; // Don't need to clone here } public override void Reset() { count = 0; } public override XPathNavigator Current { get { return contextNode; } } public override object Evaluate(XPathNodeIterator context) { contextNode = context.Current; // We don't clone here. Because we never move it. count = 0; return this; } public override XPathNavigator Advance() { if (count == 0) { count = 1; return contextNode; } return null; } public override XPathNavigator MatchNode(XPathNavigator current) { return current; } public override XPathNodeIterator Clone() { return new ContextQuery(this); } public override XPathResultType StaticType { get { return XPathResultType.NodeSet; } } public override int CurrentPosition { get { return count; } } public override int Count { get { return 1; } } public override QueryProps Properties { get { return QueryProps.Merge | QueryProps.Cached | QueryProps.Position | QueryProps.Count; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// 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 class ContextQuery : Query { protected XPathNavigator contextNode; public ContextQuery() { this.count = 0; } protected ContextQuery(ContextQuery other) : base(other) { this.contextNode = other.contextNode; // Don't need to clone here } public override void Reset() { count = 0; } public override XPathNavigator Current { get { return contextNode; } } public override object Evaluate(XPathNodeIterator context) { contextNode = context.Current; // We don't clone here. Because we never move it. count = 0; return this; } public override XPathNavigator Advance() { if (count == 0) { count = 1; return contextNode; } return null; } public override XPathNavigator MatchNode(XPathNavigator current) { return current; } public override XPathNodeIterator Clone() { return new ContextQuery(this); } public override XPathResultType StaticType { get { return XPathResultType.NodeSet; } } public override int CurrentPosition { get { return count; } } public override int Count { get { return 1; } } public override QueryProps Properties { get { return QueryProps.Merge | QueryProps.Cached | QueryProps.Position | QueryProps.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
- TextBoxBase.cs
- TemplateControl.cs
- TextComposition.cs
- Code.cs
- EventProxy.cs
- CryptoKeySecurity.cs
- WindowsIPAddress.cs
- FilteredAttributeCollection.cs
- _ListenerResponseStream.cs
- TextDecorationCollectionConverter.cs
- TcpTransportBindingElement.cs
- TextTreeFixupNode.cs
- OleDbPropertySetGuid.cs
- EntityDataSource.cs
- wgx_commands.cs
- TextSelectionProcessor.cs
- TreePrinter.cs
- pingexception.cs
- PropagationProtocolsTracing.cs
- TypeDescriptionProviderAttribute.cs
- WhitespaceSignificantCollectionAttribute.cs
- TypeBuilder.cs
- SQLMoneyStorage.cs
- ToolStripProgressBar.cs
- ExpressionBuilder.cs
- ResourceDictionary.cs
- ToolStripGrip.cs
- TextFormatterImp.cs
- MethodRental.cs
- XmlReaderSettings.cs
- BoundingRectTracker.cs
- HttpPostProtocolReflector.cs
- PackageRelationshipSelector.cs
- AnonymousIdentificationModule.cs
- StringArrayEditor.cs
- SizeAnimationClockResource.cs
- DefaultMergeHelper.cs
- SettingsAttributes.cs
- ToolBarOverflowPanel.cs
- BlurBitmapEffect.cs
- OpCodes.cs
- EmbeddedMailObject.cs
- EnvironmentPermission.cs
- MergeFilterQuery.cs
- DecimalAnimation.cs
- LineUtil.cs
- RegexCapture.cs
- WaitForChangedResult.cs
- MemoryStream.cs
- ObjectDataSourceMethodEventArgs.cs
- CqlParserHelpers.cs
- BaseComponentEditor.cs
- ConfigurationValue.cs
- CodeDomConfigurationHandler.cs
- RemoteWebConfigurationHostStream.cs
- JournalEntryStack.cs
- TypeToStringValueConverter.cs
- PtsPage.cs
- ContentElement.cs
- InputScopeAttribute.cs
- SafeNativeMethods.cs
- ManagedIStream.cs
- InArgumentConverter.cs
- WebPartDescriptionCollection.cs
- DataSetUtil.cs
- _NetRes.cs
- GridViewRowCollection.cs
- CompilerErrorCollection.cs
- PermissionRequestEvidence.cs
- QueryAccessibilityHelpEvent.cs
- FixUpCollection.cs
- Model3DGroup.cs
- CommandDevice.cs
- WindowsRichEdit.cs
- SmiContext.cs
- TextCompositionEventArgs.cs
- WebContext.cs
- OdbcConnection.cs
- WebConfigurationHostFileChange.cs
- XamlTreeBuilder.cs
- DefaultValueAttribute.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- HotSpotCollection.cs
- SubMenuStyleCollectionEditor.cs
- TreeWalker.cs
- WebPartEditorOkVerb.cs
- ElementUtil.cs
- SqlUtil.cs
- RightsDocument.cs
- CollaborationHelperFunctions.cs
- ToolStripItemCollection.cs
- _Rfc2616CacheValidators.cs
- rsa.cs
- AppearanceEditorPart.cs
- BindingNavigator.cs
- BookmarkScopeHandle.cs
- RealizationContext.cs
- DataTableReader.cs
- ContentType.cs
- StackBuilderSink.cs