Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- ComplexLine.cs
- Blend.cs
- EventToken.cs
- SchemaTypeEmitter.cs
- PerformanceCounterPermission.cs
- printdlgexmarshaler.cs
- WindowsListBox.cs
- CommonDialog.cs
- PeerSecurityHelpers.cs
- TreeNodeMouseHoverEvent.cs
- UnsafeNativeMethods.cs
- WebPartZoneAutoFormat.cs
- CqlIdentifiers.cs
- UnicodeEncoding.cs
- AliasGenerator.cs
- FixedSOMSemanticBox.cs
- FlowDocumentScrollViewer.cs
- ProjectionRewriter.cs
- MergablePropertyAttribute.cs
- UrlPath.cs
- TraceEventCache.cs
- EntityObject.cs
- DataGridColumnFloatingHeader.cs
- TraceHandler.cs
- ProcessModelInfo.cs
- RtfToken.cs
- AssertSection.cs
- PageSetupDialog.cs
- filewebrequest.cs
- ShutDownListener.cs
- Operand.cs
- QuarticEase.cs
- PagePropertiesChangingEventArgs.cs
- _SafeNetHandles.cs
- SmtpException.cs
- Overlapped.cs
- TextMetrics.cs
- StatusBarItemAutomationPeer.cs
- CommunicationObjectAbortedException.cs
- EndpointDiscoveryMetadataCD1.cs
- UserControl.cs
- RenderingEventArgs.cs
- MetaColumn.cs
- ObjectSecurity.cs
- ColorConverter.cs
- RequestCachingSection.cs
- ZipIOCentralDirectoryFileHeader.cs
- WebPartConnectionsConnectVerb.cs
- SkipQueryOptionExpression.cs
- ColumnReorderedEventArgs.cs
- DbConnectionStringCommon.cs
- XmlExpressionDumper.cs
- MessageSmuggler.cs
- SizeFConverter.cs
- CorrelationManager.cs
- OdbcCommand.cs
- WindowsTooltip.cs
- GraphicsPath.cs
- BindingExpressionUncommonField.cs
- SqlDeflator.cs
- AttributeEmitter.cs
- ConditionChanges.cs
- FormViewUpdatedEventArgs.cs
- GroupItemAutomationPeer.cs
- securestring.cs
- ResXResourceReader.cs
- StreamInfo.cs
- SynchronizedDispatch.cs
- ChildChangedEventArgs.cs
- NetMsmqSecurityMode.cs
- FormattedText.cs
- XmlSchemaProviderAttribute.cs
- SHA512Cng.cs
- ThemeDirectoryCompiler.cs
- BeginStoryboard.cs
- LayoutDump.cs
- IfAction.cs
- CreateParams.cs
- BindableAttribute.cs
- CroppedBitmap.cs
- SHA384Managed.cs
- InternalConfigRoot.cs
- WebPartHeaderCloseVerb.cs
- HttpDictionary.cs
- CurrencyWrapper.cs
- PresentationTraceSources.cs
- WindowsListViewItem.cs
- KnownTypes.cs
- RawKeyboardInputReport.cs
- BasicSecurityProfileVersion.cs
- ProcessHostFactoryHelper.cs
- ProxySimple.cs
- UnsupportedPolicyOptionsException.cs
- ReverseInheritProperty.cs
- DoWorkEventArgs.cs
- UnsafeNativeMethodsCLR.cs
- CalendarDataBindingHandler.cs
- FontStyleConverter.cs
- OptimalBreakSession.cs
- OutputCacheProviderCollection.cs