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
- DataServiceQueryOfT.cs
- Win32Native.cs
- UrlMapping.cs
- MaskDescriptors.cs
- DoWorkEventArgs.cs
- FlowPosition.cs
- webbrowsersite.cs
- ScrollProperties.cs
- BufferBuilder.cs
- DbProviderConfigurationHandler.cs
- safesecurityhelperavalon.cs
- UrlPath.cs
- IxmlLineInfo.cs
- AccessDataSourceWizardForm.cs
- FusionWrap.cs
- AnnotationComponentChooser.cs
- Matrix3DConverter.cs
- ColorInterpolationModeValidation.cs
- TimerElapsedEvenArgs.cs
- PropertyGridCommands.cs
- HwndAppCommandInputProvider.cs
- DoubleConverter.cs
- FileClassifier.cs
- Comparer.cs
- ContainerParaClient.cs
- ICollection.cs
- SoapServerProtocol.cs
- ErrorFormatter.cs
- OracleBFile.cs
- ADConnectionHelper.cs
- DictionarySectionHandler.cs
- StringSource.cs
- PointCollection.cs
- CollectionContainer.cs
- DataTableCollection.cs
- Span.cs
- SerializationInfo.cs
- WebReferenceCollection.cs
- WebServiceResponseDesigner.cs
- WindowCollection.cs
- VariableQuery.cs
- XmlSchemaComplexContent.cs
- SmiEventSink_Default.cs
- DataBindingList.cs
- FastPropertyAccessor.cs
- XslCompiledTransform.cs
- WinFormsSpinner.cs
- ParseChildrenAsPropertiesAttribute.cs
- XmlSerializationReader.cs
- ISAPIRuntime.cs
- HttpRawResponse.cs
- ScopeCompiler.cs
- SQLSingleStorage.cs
- _HeaderInfo.cs
- UriTemplateDispatchFormatter.cs
- webclient.cs
- StrongNamePublicKeyBlob.cs
- SchemaObjectWriter.cs
- Stack.cs
- ReliableMessagingVersionConverter.cs
- ValidationError.cs
- FrameworkContentElementAutomationPeer.cs
- DoubleCollectionConverter.cs
- TranslateTransform3D.cs
- XmlSchemaAttribute.cs
- StyleXamlTreeBuilder.cs
- Size.cs
- Point3DValueSerializer.cs
- LogExtent.cs
- SelectionProviderWrapper.cs
- KnownTypes.cs
- RijndaelManaged.cs
- DbModificationCommandTree.cs
- TextTreeObjectNode.cs
- TypeTypeConverter.cs
- MailMessageEventArgs.cs
- StreamWriter.cs
- FileClassifier.cs
- Model3D.cs
- MoveSizeWinEventHandler.cs
- ResourceReferenceExpression.cs
- MessageDecoder.cs
- FailedToStartupUIException.cs
- ExpressionLexer.cs
- DataSet.cs
- ResolveCriteriaApril2005.cs
- PathGeometry.cs
- FixedHyperLink.cs
- WebPartsSection.cs
- SystemTcpConnection.cs
- StringDictionary.cs
- OrderByQueryOptionExpression.cs
- ObjectStateEntry.cs
- Parallel.cs
- TokenCreationException.cs
- BreadCrumbTextConverter.cs
- ConsoleTraceListener.cs
- DesignerEditorPartChrome.cs
- RenderCapability.cs
- RenderingBiasValidation.cs