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
- BmpBitmapDecoder.cs
- ServiceEndpointCollection.cs
- ZipIOFileItemStream.cs
- PrintDialog.cs
- DataFormats.cs
- ping.cs
- HyperLinkDataBindingHandler.cs
- ServicePoint.cs
- future.cs
- Vector.cs
- WebPartZone.cs
- DocumentPageTextView.cs
- ToolBarPanel.cs
- PersonalizablePropertyEntry.cs
- ConfigurationException.cs
- NodeLabelEditEvent.cs
- Size.cs
- GridEntryCollection.cs
- LineSegment.cs
- InstanceLockQueryResult.cs
- ParenthesizePropertyNameAttribute.cs
- SplitContainer.cs
- AppDomain.cs
- StorageEndPropertyMapping.cs
- ObjectSet.cs
- IISMapPath.cs
- XmlnsDictionary.cs
- PkcsUtils.cs
- DataServiceHost.cs
- TransactionInformation.cs
- UnmanagedMemoryAccessor.cs
- SynchronizationLockException.cs
- WindowsSlider.cs
- DBDataPermission.cs
- DesignerGeometryHelper.cs
- ProtocolsConfigurationEntry.cs
- GreenMethods.cs
- WebReferenceCollection.cs
- Tracking.cs
- SystemIcons.cs
- TrackBarRenderer.cs
- ValidationHelper.cs
- VirtualPathProvider.cs
- PreviousTrackingServiceAttribute.cs
- ItemsControl.cs
- DbDataSourceEnumerator.cs
- AttachedAnnotation.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- System.Data.OracleClient_BID.cs
- EmptyEnumerator.cs
- WindowsScroll.cs
- HttpHandler.cs
- Symbol.cs
- COM2Enum.cs
- IIS7WorkerRequest.cs
- XPathEmptyIterator.cs
- ColumnHeaderCollectionEditor.cs
- DataGridViewLayoutData.cs
- Filter.cs
- DataSourceControlBuilder.cs
- Selection.cs
- PointIndependentAnimationStorage.cs
- OwnerDrawPropertyBag.cs
- SignerInfo.cs
- GuidTagList.cs
- RedistVersionInfo.cs
- RectKeyFrameCollection.cs
- RoleServiceManager.cs
- GlyphRunDrawing.cs
- Utilities.cs
- ComponentTray.cs
- DataBindingCollection.cs
- MembershipSection.cs
- ExpandSegmentCollection.cs
- FirstMatchCodeGroup.cs
- CommandEventArgs.cs
- Color.cs
- InkCanvasSelectionAdorner.cs
- DbgUtil.cs
- RequestCache.cs
- DataObjectFieldAttribute.cs
- OleDbParameterCollection.cs
- DragSelectionMessageFilter.cs
- SQLMembershipProvider.cs
- Array.cs
- ChannelRequirements.cs
- KeyPullup.cs
- TypeSchema.cs
- Point3DCollection.cs
- MatrixTransform.cs
- elementinformation.cs
- JpegBitmapEncoder.cs
- XmlQuerySequence.cs
- SqlDataSourceConfigureSelectPanel.cs
- ResolveMatchesCD1.cs
- DataRecord.cs
- EventDescriptorCollection.cs
- DataPagerFieldItem.cs
- XMLSchema.cs
- ColumnMapVisitor.cs