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
- StorageEntityTypeMapping.cs
 - FormViewRow.cs
 - SctClaimDictionary.cs
 - GlobalProxySelection.cs
 - MediaEntryAttribute.cs
 - CommonGetThemePartSize.cs
 - LogExtentCollection.cs
 - PointAnimationClockResource.cs
 - BooleanSwitch.cs
 - InvariantComparer.cs
 - X509Certificate2Collection.cs
 - ReadOnlyTernaryTree.cs
 - CodeTypeParameterCollection.cs
 - XmlNodeChangedEventArgs.cs
 - DrawingContextWalker.cs
 - TextLine.cs
 - baseaxisquery.cs
 - EditorZoneBase.cs
 - DCSafeHandle.cs
 - CodePageEncoding.cs
 - EntityTransaction.cs
 - XmlBinaryReader.cs
 - Emitter.cs
 - DataServiceHostFactory.cs
 - ByteAnimationBase.cs
 - ApplicationInfo.cs
 - CompilerInfo.cs
 - PhysicalAddress.cs
 - BulletedList.cs
 - embossbitmapeffect.cs
 - MediaSystem.cs
 - CrossAppDomainChannel.cs
 - ISFClipboardData.cs
 - DesignerContextDescriptor.cs
 - DataGridViewHeaderCell.cs
 - PagerStyle.cs
 - MessageBox.cs
 - Transform3DCollection.cs
 - MachineSettingsSection.cs
 - ListViewUpdatedEventArgs.cs
 - UpdateManifestForBrowserApplication.cs
 - FileClassifier.cs
 - CryptoApi.cs
 - SymbolTable.cs
 - Vector3DCollectionConverter.cs
 - CompilationSection.cs
 - GiveFeedbackEvent.cs
 - Boolean.cs
 - HttpServerChannel.cs
 - KoreanCalendar.cs
 - DbConnectionPoolOptions.cs
 - XmlConvert.cs
 - Soap.cs
 - EntityDescriptor.cs
 - CqlWriter.cs
 - ParserStack.cs
 - ActiveXHost.cs
 - ResourceType.cs
 - DataGridCommandEventArgs.cs
 - PersonalizationEntry.cs
 - XmlTextAttribute.cs
 - ComAdminWrapper.cs
 - RetriableClipboard.cs
 - Decorator.cs
 - XPathScanner.cs
 - XsltConvert.cs
 - PickBranchDesigner.xaml.cs
 - AnnotationObservableCollection.cs
 - VirtualPathUtility.cs
 - Membership.cs
 - MethodInfo.cs
 - PrintingPermission.cs
 - SiteOfOriginContainer.cs
 - TabOrder.cs
 - ActivityMarkupSerializer.cs
 - SamlAttributeStatement.cs
 - SecurityException.cs
 - EntityCommand.cs
 - Base64Decoder.cs
 - ToolStripSettings.cs
 - FakeModelPropertyImpl.cs
 - ImageAnimator.cs
 - SmtpLoginAuthenticationModule.cs
 - cookiecontainer.cs
 - HybridDictionary.cs
 - TextPattern.cs
 - ChangeNode.cs
 - ComplexType.cs
 - SecurityRuntime.cs
 - CodeDirectionExpression.cs
 - XmlSerializerNamespaces.cs
 - GorillaCodec.cs
 - SmtpSection.cs
 - AsyncOperationManager.cs
 - SqlCrossApplyToCrossJoin.cs
 - ReadOnlyNameValueCollection.cs
 - ResXResourceWriter.cs
 - VersionValidator.cs
 - TemplateLookupAction.cs
 - BitmapInitialize.cs