Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / XmlUtils / System / Xml / Xsl / QIL / SubstitutionList.cs / 1 / SubstitutionList.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
using System;
using System.Collections;
using System.Diagnostics;
namespace System.Xml.Xsl.Qil {
///
/// Data structure for use in CloneAndReplace
///
/// Isolates the many QilNode classes from changes in
/// the underlying data structure.
internal sealed class SubstitutionList {
//
private ArrayList s;
public SubstitutionList() {
this.s = new ArrayList(4);
}
///
/// Add a substituion pair
///
/// a node to be replaced
/// its replacement
public void AddSubstitutionPair(QilNode find, QilNode replace) {
s.Add(find);
s.Add(replace);
}
///
/// Remove the last a substituion pair
///
public void RemoveLastSubstitutionPair() {
s.RemoveRange(s.Count - 2, 2);
}
///
/// Remove the last N substitution pairs
///
public void RemoveLastNSubstitutionPairs(int n) {
Debug.Assert(n >= 0, "n must be nonnegative");
if (n > 0) {
n *= 2;
s.RemoveRange(s.Count - n, n);
}
}
///
/// Find the replacement for a node
///
/// the node to replace
/// null if no replacement is found
public QilNode FindReplacement(QilNode n) {
Debug.Assert(s.Count % 2 == 0);
for (int i = s.Count-2; i >= 0; i-=2)
if (s[i] == n)
return (QilNode)s[i+1];
return null;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
using System;
using System.Collections;
using System.Diagnostics;
namespace System.Xml.Xsl.Qil {
///
/// Data structure for use in CloneAndReplace
///
/// Isolates the many QilNode classes from changes in
/// the underlying data structure.
internal sealed class SubstitutionList {
//
private ArrayList s;
public SubstitutionList() {
this.s = new ArrayList(4);
}
///
/// Add a substituion pair
///
/// a node to be replaced
/// its replacement
public void AddSubstitutionPair(QilNode find, QilNode replace) {
s.Add(find);
s.Add(replace);
}
///
/// Remove the last a substituion pair
///
public void RemoveLastSubstitutionPair() {
s.RemoveRange(s.Count - 2, 2);
}
///
/// Remove the last N substitution pairs
///
public void RemoveLastNSubstitutionPairs(int n) {
Debug.Assert(n >= 0, "n must be nonnegative");
if (n > 0) {
n *= 2;
s.RemoveRange(s.Count - n, n);
}
}
///
/// Find the replacement for a node
///
/// the node to replace
/// null if no replacement is found
public QilNode FindReplacement(QilNode n) {
Debug.Assert(s.Count % 2 == 0);
for (int i = s.Count-2; i >= 0; i-=2)
if (s[i] == n)
return (QilNode)s[i+1];
return null;
}
}
}
// 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
- Tracer.cs
- AdRotatorDesigner.cs
- SafeBitVector32.cs
- StylusPointCollection.cs
- XmlDataImplementation.cs
- XmlDocument.cs
- MonitoringDescriptionAttribute.cs
- SizeConverter.cs
- StubHelpers.cs
- EUCJPEncoding.cs
- EmptyImpersonationContext.cs
- SamlNameIdentifierClaimResource.cs
- SessionIDManager.cs
- ContactManager.cs
- PackageRelationshipSelector.cs
- ExpressionParser.cs
- MenuAdapter.cs
- FlowDocumentReader.cs
- SelectorItemAutomationPeer.cs
- CompilationLock.cs
- DocumentPaginator.cs
- sqlstateclientmanager.cs
- ArraySortHelper.cs
- ReadOnlyTernaryTree.cs
- ImageClickEventArgs.cs
- SerializationStore.cs
- Rect3DValueSerializer.cs
- FocusTracker.cs
- AsyncOperationManager.cs
- PropertyValueChangedEvent.cs
- XslVisitor.cs
- PartialTrustVisibleAssembliesSection.cs
- DataControlLinkButton.cs
- WebPartTracker.cs
- TraceHelpers.cs
- XmlSchemaSimpleContentExtension.cs
- ControlPropertyNameConverter.cs
- DeviceContexts.cs
- DbInsertCommandTree.cs
- elementinformation.cs
- SoapInteropTypes.cs
- TransformGroup.cs
- DataGridBoolColumn.cs
- xmlglyphRunInfo.cs
- DesignerExtenders.cs
- PKCS1MaskGenerationMethod.cs
- LassoHelper.cs
- XmlSchemaObjectCollection.cs
- ToolStripItemCollection.cs
- Bits.cs
- DrawingImage.cs
- DataGridAutomationPeer.cs
- PointCollection.cs
- LongTypeConverter.cs
- XPathNavigatorKeyComparer.cs
- SystemIPInterfaceStatistics.cs
- FileChangesMonitor.cs
- ProjectionPathSegment.cs
- ViewSimplifier.cs
- UnsupportedPolicyOptionsException.cs
- AudioDeviceOut.cs
- XmlILIndex.cs
- ByteKeyFrameCollection.cs
- NegationPusher.cs
- DmlSqlGenerator.cs
- XmlWriter.cs
- ListViewEditEventArgs.cs
- HtmlInputCheckBox.cs
- QueryAccessibilityHelpEvent.cs
- FolderBrowserDialog.cs
- MarginsConverter.cs
- XmlNotation.cs
- BindableAttribute.cs
- QilInvokeLateBound.cs
- UIElement3DAutomationPeer.cs
- Activator.cs
- WriteLine.cs
- PathGeometry.cs
- ClientEventManager.cs
- TrackingSection.cs
- AsyncResult.cs
- AutomationElementCollection.cs
- DataAccessor.cs
- DragEvent.cs
- ContractUtils.cs
- BinaryFormatter.cs
- DesignerFrame.cs
- CompilerResults.cs
- DefaultValueMapping.cs
- linebase.cs
- EntityDataSourceStatementEditorForm.cs
- WorkflowInlining.cs
- HtmlTernaryTree.cs
- NullableLongAverageAggregationOperator.cs
- ConnectionStringsSection.cs
- OleDbEnumerator.cs
- TextRange.cs
- CommandConverter.cs
- CriticalHandle.cs
- VirtualDirectoryMapping.cs