Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / XmlUtils / System / Xml / Xsl / QIL / SubstitutionList.cs / 1 / 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. //------------------------------------------------------------------------------ //// 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
- ParserContext.cs
- _OSSOCK.cs
- SHA384.cs
- __TransparentProxy.cs
- DataGridViewCellCollection.cs
- Control.cs
- XmlSecureResolver.cs
- SpotLight.cs
- IPEndPointCollection.cs
- CapacityStreamGeometryContext.cs
- MemoryRecordBuffer.cs
- DbSource.cs
- TabControlEvent.cs
- DatatypeImplementation.cs
- IsolatedStoragePermission.cs
- Events.cs
- InvariantComparer.cs
- DataGridViewBand.cs
- RoleProviderPrincipal.cs
- WindowsPen.cs
- RuleEngine.cs
- DynamicRenderer.cs
- BindStream.cs
- Fault.cs
- OperationContractGenerationContext.cs
- UnsafeNativeMethods.cs
- WebPartCollection.cs
- TextTreeRootTextBlock.cs
- TabItemWrapperAutomationPeer.cs
- PageContentAsyncResult.cs
- AdapterDictionary.cs
- XPathChildIterator.cs
- PartitionResolver.cs
- WebControlParameterProxy.cs
- TypeReference.cs
- HwndSourceParameters.cs
- WindowsTooltip.cs
- IgnoreFlushAndCloseStream.cs
- SafeProcessHandle.cs
- SourceElementsCollection.cs
- Stack.cs
- GridViewUpdatedEventArgs.cs
- HTTPNotFoundHandler.cs
- StructuralCache.cs
- CommandField.cs
- InheritanceAttribute.cs
- HandlerWithFactory.cs
- ClientUrlResolverWrapper.cs
- XmlSchemaCollection.cs
- BindStream.cs
- ClientSideProviderDescription.cs
- WinFormsSecurity.cs
- RepeaterDataBoundAdapter.cs
- OledbConnectionStringbuilder.cs
- SystemIPGlobalStatistics.cs
- Lasso.cs
- QueueException.cs
- EmbeddedMailObject.cs
- XNameTypeConverter.cs
- GZipObjectSerializer.cs
- CodeCommentStatementCollection.cs
- CollectionBase.cs
- InternalsVisibleToAttribute.cs
- WebPartCloseVerb.cs
- MemberProjectedSlot.cs
- JsonFormatReaderGenerator.cs
- CheckedListBox.cs
- SqlPersonalizationProvider.cs
- List.cs
- PresentationSource.cs
- SecureUICommand.cs
- EventProviderTraceListener.cs
- WebPartEditVerb.cs
- EmptyImpersonationContext.cs
- ConfigurationManager.cs
- TextParagraphProperties.cs
- WebSysDefaultValueAttribute.cs
- MD5.cs
- LoadedEvent.cs
- ProfileSettingsCollection.cs
- Odbc32.cs
- XhtmlBasicPageAdapter.cs
- ApplicationFileCodeDomTreeGenerator.cs
- List.cs
- TypeNameConverter.cs
- EngineSite.cs
- DataReceivedEventArgs.cs
- ComplusTypeValidator.cs
- Win32MouseDevice.cs
- FormsAuthenticationUserCollection.cs
- ConfigurationStrings.cs
- DeclarativeConditionsCollection.cs
- BaseCAMarshaler.cs
- SudsWriter.cs
- TextEditorThreadLocalStore.cs
- IndexedGlyphRun.cs
- ContainerUIElement3D.cs
- InputLanguageProfileNotifySink.cs
- XmlDataSourceView.cs
- StdRegProviderWrapper.cs