Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / QIL / SubstitutionList.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MultilineStringConverter.cs
- HitTestResult.cs
- WebBrowser.cs
- COMException.cs
- EmptyEnumerable.cs
- OdbcUtils.cs
- SectionUpdates.cs
- WebPartEditVerb.cs
- SQLMembershipProvider.cs
- xsdvalidator.cs
- DynamicDiscoSearcher.cs
- BatchParser.cs
- ContextConfiguration.cs
- TransformedBitmap.cs
- cryptoapiTransform.cs
- WorkflowServiceInstance.cs
- SqlDependency.cs
- SQLInt64.cs
- ThreadStartException.cs
- TdsParserSessionPool.cs
- DataGridViewCellEventArgs.cs
- ValidationResult.cs
- ListControlBoundActionList.cs
- CodeTypeMember.cs
- EntityDataSourceChangingEventArgs.cs
- EastAsianLunisolarCalendar.cs
- HttpConfigurationContext.cs
- ImagingCache.cs
- LineGeometry.cs
- CollectionViewProxy.cs
- MenuItemBinding.cs
- SchemaNames.cs
- SafeCoTaskMem.cs
- Int32Collection.cs
- WindowsSpinner.cs
- DataGridViewSelectedCellCollection.cs
- GreenMethods.cs
- FamilyCollection.cs
- SecurityHeaderLayout.cs
- AccessibleObject.cs
- RIPEMD160Managed.cs
- SchemaEntity.cs
- WebSysDefaultValueAttribute.cs
- AQNBuilder.cs
- EdmConstants.cs
- RectangleF.cs
- RectConverter.cs
- ResourcePermissionBaseEntry.cs
- HtmlInputHidden.cs
- Serializer.cs
- BindingWorker.cs
- BlurEffect.cs
- View.cs
- FlowDocumentReaderAutomationPeer.cs
- HwndHostAutomationPeer.cs
- ParameterElement.cs
- EmbeddedMailObject.cs
- RootProfilePropertySettingsCollection.cs
- KeySplineConverter.cs
- TreePrinter.cs
- EditorAttributeInfo.cs
- COM2ExtendedUITypeEditor.cs
- ConsoleKeyInfo.cs
- LocalizableResourceBuilder.cs
- NamedPipeProcessProtocolHandler.cs
- ZoneMembershipCondition.cs
- HttpHeaderCollection.cs
- GeneralTransform3DTo2D.cs
- XdrBuilder.cs
- Behavior.cs
- StandardOleMarshalObject.cs
- UTF8Encoding.cs
- DesignOnlyAttribute.cs
- BooleanAnimationBase.cs
- RadioButtonList.cs
- RelatedView.cs
- ArrayItemReference.cs
- SpnEndpointIdentity.cs
- Size3D.cs
- ExcludeFromCodeCoverageAttribute.cs
- WorkflowInstance.cs
- SkinBuilder.cs
- StringDictionary.cs
- TableParagraph.cs
- PtsContext.cs
- FigureParaClient.cs
- ObjectTypeMapping.cs
- TypeRefElement.cs
- ToolStripRenderEventArgs.cs
- SQLDateTimeStorage.cs
- WindowsEditBox.cs
- LeafCellTreeNode.cs
- DelegatedStream.cs
- PhysicalOps.cs
- Misc.cs
- LinqDataSourceSelectEventArgs.cs
- XmlNamespaceMapping.cs
- XPathMultyIterator.cs
- ItemDragEvent.cs
- StrokeNodeOperations2.cs