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
- OledbConnectionStringbuilder.cs
- SQLMoneyStorage.cs
- WinOEToolBoxItem.cs
- ListChunk.cs
- XPathNavigatorReader.cs
- Matrix.cs
- ImportContext.cs
- versioninfo.cs
- RectAnimation.cs
- StylusPointPropertyUnit.cs
- QueuePathEditor.cs
- OracleBFile.cs
- Model3DGroup.cs
- Executor.cs
- thaishape.cs
- OverflowException.cs
- Pts.cs
- ColorContextHelper.cs
- PerfProviderCollection.cs
- SocketElement.cs
- XmlAnyElementAttribute.cs
- IdentitySection.cs
- _HeaderInfo.cs
- FontFamilyConverter.cs
- ImageCodecInfoPrivate.cs
- TableCellAutomationPeer.cs
- SqlProfileProvider.cs
- InheritablePropertyChangeInfo.cs
- TextSelectionProcessor.cs
- TreeSet.cs
- SQLDateTimeStorage.cs
- ToolStripSeparatorRenderEventArgs.cs
- DefaultTextStore.cs
- SchemaManager.cs
- HttpWebRequestElement.cs
- RSAOAEPKeyExchangeFormatter.cs
- SafeFileMappingHandle.cs
- CommandID.cs
- KeyValuePair.cs
- SimpleType.cs
- DataServiceStreamProviderWrapper.cs
- AuthenticationManager.cs
- SiteMapNode.cs
- DataGridViewRowCancelEventArgs.cs
- PropertyMap.cs
- ToolboxCategoryItems.cs
- BrowserCapabilitiesCompiler.cs
- InlinedAggregationOperatorEnumerator.cs
- XmlDocumentFragment.cs
- ScrollPattern.cs
- DataContractSerializerSection.cs
- StringExpressionSet.cs
- ItemsPresenter.cs
- UdpDiscoveryEndpoint.cs
- pingexception.cs
- EnumBuilder.cs
- DataSourceControl.cs
- IndexOutOfRangeException.cs
- ISessionStateStore.cs
- HttpCachePolicy.cs
- log.cs
- EDesignUtil.cs
- Variant.cs
- OleDbCommand.cs
- SafeNativeMethods.cs
- AsmxEndpointPickerExtension.cs
- XsdSchemaFileEditor.cs
- ProtocolInformationWriter.cs
- FieldAccessException.cs
- SqlEnums.cs
- LogicalTreeHelper.cs
- SocketInformation.cs
- XmlSchemaAll.cs
- CheckBox.cs
- DataGridViewColumnHeaderCell.cs
- RegistrationServices.cs
- QueryStringParameter.cs
- ClientSettingsStore.cs
- TextBoxBaseDesigner.cs
- WasHttpHandlersInstallComponent.cs
- CompressEmulationStream.cs
- XslNumber.cs
- CodeEntryPointMethod.cs
- XpsImageSerializationService.cs
- ComboBox.cs
- VisualBasicDesignerHelper.cs
- GridViewColumnCollectionChangedEventArgs.cs
- SingleStorage.cs
- BinaryConverter.cs
- BindableTemplateBuilder.cs
- ResolveNameEventArgs.cs
- XmlDeclaration.cs
- ThreadPool.cs
- CodeExporter.cs
- WindowsListViewItemCheckBox.cs
- CodeDefaultValueExpression.cs
- InternalCache.cs
- ObjectSecurity.cs
- SqlDataSourceStatusEventArgs.cs
- BindingValueChangedEventArgs.cs