Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- DataGridItemEventArgs.cs
- DataSpaceManager.cs
- XmlNamespaceManager.cs
- ObjectContext.cs
- WorkflowDurableInstance.cs
- TrackBarRenderer.cs
- HttpCookie.cs
- invalidudtexception.cs
- PackagePart.cs
- PlaceHolder.cs
- ListControl.cs
- DataGridCellsPanel.cs
- QueueProcessor.cs
- RecordsAffectedEventArgs.cs
- HtmlControlPersistable.cs
- CollectionsUtil.cs
- SqlConnectionPoolGroupProviderInfo.cs
- XmlSchemaValidationException.cs
- StreamGeometry.cs
- COM2AboutBoxPropertyDescriptor.cs
- BitmapSource.cs
- FilterException.cs
- Serializer.cs
- OracleBFile.cs
- InternalRelationshipCollection.cs
- DragDrop.cs
- GPPOINTF.cs
- CommandDevice.cs
- HyperLinkField.cs
- DesignTimeVisibleAttribute.cs
- RenderingBiasValidation.cs
- TrackingProfileCache.cs
- RightNameExpirationInfoPair.cs
- ExpressionValueEditor.cs
- HtmlElement.cs
- bindurihelper.cs
- ContextStack.cs
- WebPartZoneBaseDesigner.cs
- Predicate.cs
- ClassData.cs
- MasterPage.cs
- ConfigurationCollectionAttribute.cs
- SelectionItemProviderWrapper.cs
- AutomationEventArgs.cs
- KeyboardEventArgs.cs
- RawMouseInputReport.cs
- CardSpacePolicyElement.cs
- DataTableReaderListener.cs
- ValueCollectionParameterReader.cs
- Visual.cs
- NotifyCollectionChangedEventArgs.cs
- HybridWebProxyFinder.cs
- HtmlMeta.cs
- JsonStringDataContract.cs
- SimpleHandlerFactory.cs
- AsyncOperationLifetimeManager.cs
- XsltFunctions.cs
- SoapMessage.cs
- ScriptManagerProxy.cs
- ActivityTypeDesigner.xaml.cs
- HotCommands.cs
- NavigationFailedEventArgs.cs
- PlaceHolder.cs
- FileLoadException.cs
- MergeFailedEvent.cs
- CompletedAsyncResult.cs
- EnumUnknown.cs
- EventPropertyMap.cs
- TrackingProfileSerializer.cs
- CodeDOMUtility.cs
- SimpleFieldTemplateFactory.cs
- NetworkInterface.cs
- DataGridViewButtonCell.cs
- SQLMoney.cs
- XmlEventCache.cs
- TypeGeneratedEventArgs.cs
- BitVec.cs
- Task.cs
- log.cs
- HttpListener.cs
- KeyConverter.cs
- RootBrowserWindowProxy.cs
- GlyphsSerializer.cs
- DbConnectionPoolGroup.cs
- PageCodeDomTreeGenerator.cs
- FixedMaxHeap.cs
- CodeEventReferenceExpression.cs
- TextLineBreak.cs
- PropertyGeneratedEventArgs.cs
- StorageModelBuildProvider.cs
- ProgressChangedEventArgs.cs
- IdentitySection.cs
- IisHelper.cs
- MethodBody.cs
- LogicalTreeHelper.cs
- PrtTicket_Base.cs
- ExceptionValidationRule.cs
- LogicalExpr.cs
- SqlDataSourceParameterParser.cs
- DocumentXPathNavigator.cs