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
- QueryOutputWriterV1.cs
- SQLDoubleStorage.cs
- KeyedHashAlgorithm.cs
- PlanCompiler.cs
- SessionStateModule.cs
- DiagnosticsElement.cs
- XmlMembersMapping.cs
- BrushMappingModeValidation.cs
- URLMembershipCondition.cs
- SelectedDatesCollection.cs
- XmlMemberMapping.cs
- MemberCollection.cs
- XmlElementAttributes.cs
- ConnectionStringSettingsCollection.cs
- CommandDevice.cs
- MediaContext.cs
- AssemblyBuilderData.cs
- PasswordRecovery.cs
- XmlSchemaComplexContentRestriction.cs
- XmlTextAttribute.cs
- OleDbEnumerator.cs
- AssociationTypeEmitter.cs
- XmlIgnoreAttribute.cs
- DataObjectMethodAttribute.cs
- ItemsPresenter.cs
- SqlDataSourceRefreshSchemaForm.cs
- XmlComment.cs
- Resources.Designer.cs
- EmptyEnumerator.cs
- SessionSwitchEventArgs.cs
- Int16Storage.cs
- OutputCacheModule.cs
- PathNode.cs
- ImageBrush.cs
- SqlError.cs
- ForeignKeyConstraint.cs
- ComplexPropertyEntry.cs
- ElapsedEventArgs.cs
- unsafenativemethodstextservices.cs
- StickyNote.cs
- MethodSignatureGenerator.cs
- AutomationElement.cs
- CodeEntryPointMethod.cs
- Identifier.cs
- PermissionSet.cs
- WasEndpointConfigContainer.cs
- VideoDrawing.cs
- SQLBinary.cs
- ListViewInsertEventArgs.cs
- TreeWalkHelper.cs
- SingleObjectCollection.cs
- FilterEventArgs.cs
- DoubleAnimationBase.cs
- DecimalAnimation.cs
- ParameterCollection.cs
- TextServicesHost.cs
- URLMembershipCondition.cs
- WebPartVerbCollection.cs
- XmlSecureResolver.cs
- EventLogHandle.cs
- TreeBuilderXamlTranslator.cs
- NativeCompoundFileAPIs.cs
- TextParaClient.cs
- HostProtectionPermission.cs
- BaseUriHelper.cs
- ProcessHost.cs
- ItemCollection.cs
- ToolStripStatusLabel.cs
- ToolStripSeparatorRenderEventArgs.cs
- GrammarBuilderWildcard.cs
- GorillaCodec.cs
- EntityParameter.cs
- CheckedPointers.cs
- MouseEvent.cs
- CompiledAction.cs
- WindowsToolbarAsMenu.cs
- DispatchChannelSink.cs
- StateDesigner.CommentLayoutGlyph.cs
- MetadataItemEmitter.cs
- ContextConfiguration.cs
- BuiltInExpr.cs
- StrokeCollection2.cs
- TabControl.cs
- Nullable.cs
- WebWorkflowRole.cs
- SqlDataReaderSmi.cs
- TranslateTransform.cs
- TypefaceCollection.cs
- PopOutPanel.cs
- PropertyCollection.cs
- WinEventHandler.cs
- TextServicesCompartmentEventSink.cs
- TrackingProfileCache.cs
- PKCS1MaskGenerationMethod.cs
- DummyDataSource.cs
- CodeMemberField.cs
- StreamSecurityUpgradeInitiatorBase.cs
- CollectionsUtil.cs
- UnsafeNativeMethods.cs
- wmiprovider.cs