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
- TableStyle.cs
- _FtpDataStream.cs
- KnownAssembliesSet.cs
- BindValidator.cs
- GenericEnumConverter.cs
- HeaderedContentControl.cs
- XmlSchemaAttributeGroup.cs
- DataGridViewColumnConverter.cs
- WebPartDeleteVerb.cs
- KnownAssemblyEntry.cs
- basecomparevalidator.cs
- TypeExtensionSerializer.cs
- Double.cs
- XmlBinaryReader.cs
- MouseCaptureWithinProperty.cs
- XmlWellformedWriter.cs
- HostSecurityManager.cs
- Variant.cs
- ConsoleEntryPoint.cs
- Mouse.cs
- COAUTHINFO.cs
- EntityWithChangeTrackerStrategy.cs
- Message.cs
- CollaborationHelperFunctions.cs
- SecuritySessionFilter.cs
- CommonXSendMessage.cs
- ArgumentsParser.cs
- Attributes.cs
- AttributeEmitter.cs
- RegistrySecurity.cs
- MeasureItemEvent.cs
- CodeIterationStatement.cs
- DateTimeOffsetAdapter.cs
- PersonalizationState.cs
- EdmProviderManifest.cs
- CodeGenerator.cs
- XmlSchemaDocumentation.cs
- XsltConvert.cs
- HMACSHA1.cs
- RSAPKCS1SignatureDeformatter.cs
- FileDialog_Vista.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- JavaScriptObjectDeserializer.cs
- KeyTime.cs
- OleDbPropertySetGuid.cs
- StringFunctions.cs
- CloudCollection.cs
- PhysicalAddress.cs
- ComplexType.cs
- OleDbParameterCollection.cs
- BaseDataListActionList.cs
- QueryLifecycle.cs
- ExtentCqlBlock.cs
- SqlDelegatedTransaction.cs
- PageAction.cs
- GridViewColumnHeaderAutomationPeer.cs
- EncryptedPackage.cs
- Calendar.cs
- WebScriptEnablingBehavior.cs
- XPathBinder.cs
- Attachment.cs
- XamlReader.cs
- DataTableClearEvent.cs
- AuthorizationRuleCollection.cs
- DataGridViewAdvancedBorderStyle.cs
- securestring.cs
- ReservationCollection.cs
- ServiceModelEnumValidator.cs
- LocalValueEnumerator.cs
- Receive.cs
- WebPartConnectionsCloseVerb.cs
- Translator.cs
- ProxyWebPart.cs
- WpfXamlType.cs
- TabletDevice.cs
- ProfileSection.cs
- GcHandle.cs
- ValueExpressions.cs
- SmtpTransport.cs
- SqlBuffer.cs
- XmlDeclaration.cs
- TransformationRules.cs
- SettingsAttributes.cs
- HtmlInputButton.cs
- ObjectQueryProvider.cs
- odbcmetadatacollectionnames.cs
- ListItemCollection.cs
- ProcessManager.cs
- WindowsGrip.cs
- DataBoundControlHelper.cs
- GeneralTransform3DGroup.cs
- tibetanshape.cs
- DBSchemaRow.cs
- TextContainer.cs
- SqlAliaser.cs
- GridViewRow.cs
- BindingContext.cs
- ProviderBase.cs
- LockedActivityGlyph.cs
- ConnectionOrientedTransportChannelListener.cs