Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Xml / System / Xml / XPath / Internal / MergeFilterQuery.cs / 1 / MergeFilterQuery.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; using System.Xml.Xsl; using System.Collections.Generic; internal sealed class MergeFilterQuery : CacheOutputQuery { private Query child; public MergeFilterQuery(Query input, Query child) : base(input) { this.child = child; } private MergeFilterQuery(MergeFilterQuery other) : base(other) { this.child = Clone(other.child); } public override void SetXsltContext(XsltContext xsltContext) { base.SetXsltContext(xsltContext); child.SetXsltContext(xsltContext); } public override object Evaluate(XPathNodeIterator nodeIterator) { base.Evaluate(nodeIterator); while (input.Advance() != null) { child.Evaluate(input); XPathNavigator node; while ((node = child.Advance()) != null) { Insert(outputBuffer, node); } } return this; } public override XPathNavigator MatchNode(XPathNavigator current) { XPathNavigator context = child.MatchNode(current); if (context == null) { return null; } context = input.MatchNode(context); if (context == null) { return null; } Evaluate(new XPathSingletonIterator(context.Clone(), /*moved:*/true)); XPathNavigator result = Advance(); while (result != null) { if (result.IsSamePosition(current)) { return context; } result = Advance(); } return null; } public override XPathNodeIterator Clone() { return new MergeFilterQuery(this); } public override void PrintQuery(XmlWriter w) { w.WriteStartElement(this.GetType().Name); input.PrintQuery(w); child.PrintQuery(w); w.WriteEndElement(); } } } // 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; using System.Xml.Xsl; using System.Collections.Generic; internal sealed class MergeFilterQuery : CacheOutputQuery { private Query child; public MergeFilterQuery(Query input, Query child) : base(input) { this.child = child; } private MergeFilterQuery(MergeFilterQuery other) : base(other) { this.child = Clone(other.child); } public override void SetXsltContext(XsltContext xsltContext) { base.SetXsltContext(xsltContext); child.SetXsltContext(xsltContext); } public override object Evaluate(XPathNodeIterator nodeIterator) { base.Evaluate(nodeIterator); while (input.Advance() != null) { child.Evaluate(input); XPathNavigator node; while ((node = child.Advance()) != null) { Insert(outputBuffer, node); } } return this; } public override XPathNavigator MatchNode(XPathNavigator current) { XPathNavigator context = child.MatchNode(current); if (context == null) { return null; } context = input.MatchNode(context); if (context == null) { return null; } Evaluate(new XPathSingletonIterator(context.Clone(), /*moved:*/true)); XPathNavigator result = Advance(); while (result != null) { if (result.IsSamePosition(current)) { return context; } result = Advance(); } return null; } public override XPathNodeIterator Clone() { return new MergeFilterQuery(this); } public override void PrintQuery(XmlWriter w) { w.WriteStartElement(this.GetType().Name); input.PrintQuery(w); child.PrintQuery(w); w.WriteEndElement(); } } } // 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
- MdiWindowListItemConverter.cs
- DocumentReference.cs
- XmlElement.cs
- Scheduler.cs
- altserialization.cs
- ResourceAttributes.cs
- AnnotationResource.cs
- UTF8Encoding.cs
- WindowsPen.cs
- ChooseAction.cs
- FormatSettings.cs
- CachedBitmap.cs
- TemplateXamlParser.cs
- ServicePointManagerElement.cs
- DynamicFilter.cs
- Regex.cs
- ProfileSection.cs
- DataGridTable.cs
- ImageSource.cs
- XpsViewerException.cs
- ScriptResourceDefinition.cs
- MediaTimeline.cs
- StreamGeometry.cs
- SystemIcmpV6Statistics.cs
- DnsElement.cs
- ResourceDisplayNameAttribute.cs
- AppSettingsReader.cs
- HttpHandlersSection.cs
- SettingsPropertyValue.cs
- GenericUriParser.cs
- Clock.cs
- ParamArrayAttribute.cs
- FixUpCollection.cs
- AuditLogLocation.cs
- Icon.cs
- XmlDataImplementation.cs
- ExceptionUtility.cs
- XmlSortKey.cs
- ParentControlDesigner.cs
- ArrayExtension.cs
- HtmlTableCellCollection.cs
- SqlXml.cs
- SelectionEditor.cs
- DockPattern.cs
- WebPartConnectionsConnectVerb.cs
- ServicesUtilities.cs
- ColorTransform.cs
- ConstraintEnumerator.cs
- ResourceType.cs
- WindowsFormsHostAutomationPeer.cs
- Int16.cs
- HttpWrapper.cs
- ButtonPopupAdapter.cs
- MatrixCamera.cs
- StringFormat.cs
- PermissionSet.cs
- Int32RectConverter.cs
- BuildManagerHost.cs
- MsmqIntegrationProcessProtocolHandler.cs
- AuthenticationSection.cs
- AuthenticationModuleElement.cs
- WindowsToolbar.cs
- PathData.cs
- TextEncodedRawTextWriter.cs
- autovalidator.cs
- SmtpReplyReader.cs
- ElapsedEventArgs.cs
- DocumentsTrace.cs
- SqlEnums.cs
- SqlUtils.cs
- SafeFileMapViewHandle.cs
- ProofTokenCryptoHandle.cs
- CompatibleComparer.cs
- ReadOnlyTernaryTree.cs
- ObjectDisposedException.cs
- DynamicObjectAccessor.cs
- TextTabProperties.cs
- Clock.cs
- SubclassTypeValidator.cs
- ASCIIEncoding.cs
- MessageAction.cs
- login.cs
- TransformerInfo.cs
- DictionaryBase.cs
- XmlTextWriter.cs
- ItemDragEvent.cs
- ViewGenerator.cs
- DataServiceRequestException.cs
- MULTI_QI.cs
- FontInfo.cs
- CodeMethodInvokeExpression.cs
- EventLogTraceListener.cs
- CodeIterationStatement.cs
- SafeRightsManagementSessionHandle.cs
- CachedPathData.cs
- COAUTHINFO.cs
- peernodestatemanager.cs
- ColorIndependentAnimationStorage.cs
- ConfigurationException.cs
- RoutedEventConverter.cs