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
- ObjectComplexPropertyMapping.cs
- ArgIterator.cs
- SecurityPolicySection.cs
- XComponentModel.cs
- StatusStrip.cs
- ExtenderProviderService.cs
- XPathBinder.cs
- XmlSchemaSubstitutionGroup.cs
- ServiceSettingsResponseInfo.cs
- DesigntimeLicenseContextSerializer.cs
- PenThreadWorker.cs
- HandlerWithFactory.cs
- ToolStripPanelRenderEventArgs.cs
- ListBase.cs
- DesignerVerbCollection.cs
- XmlSchemaElement.cs
- AutomationPatternInfo.cs
- XPathMessageFilter.cs
- WindowsGraphicsWrapper.cs
- ObjectSet.cs
- ToolBar.cs
- DrawingContextWalker.cs
- ObjectView.cs
- UpdatePanelTrigger.cs
- ShaderEffect.cs
- ObjectDataSourceDisposingEventArgs.cs
- PrintingPermission.cs
- ToolStripItem.cs
- ExpressionBuilderContext.cs
- ClientTargetCollection.cs
- SqlGatherConsumedAliases.cs
- HitTestDrawingContextWalker.cs
- CompoundFileReference.cs
- WindowsListViewItemStartMenu.cs
- IsolatedStorageFilePermission.cs
- SqlSupersetValidator.cs
- XmlSortKeyAccumulator.cs
- _SecureChannel.cs
- WinHttpWebProxyFinder.cs
- EntityDesignerDataSourceView.cs
- NonClientArea.cs
- DriveNotFoundException.cs
- AnnotationMap.cs
- unsafeIndexingFilterStream.cs
- TextRunTypographyProperties.cs
- CodePageEncoding.cs
- WebPartMovingEventArgs.cs
- StrokeCollection.cs
- HandleDictionary.cs
- PolicyLevel.cs
- SmtpNegotiateAuthenticationModule.cs
- DeferredTextReference.cs
- ItemContainerPattern.cs
- SafeSecurityHandles.cs
- ApplicationTrust.cs
- QueryAccessibilityHelpEvent.cs
- DataColumnCollection.cs
- ZipIOBlockManager.cs
- CoreSwitches.cs
- DeflateEmulationStream.cs
- OracleParameter.cs
- TransformerInfo.cs
- DataControlField.cs
- ProbeMatches11.cs
- Pts.cs
- FileLoadException.cs
- MissingMethodException.cs
- EntitySqlQueryCacheEntry.cs
- GatewayIPAddressInformationCollection.cs
- ClientTargetCollection.cs
- FormsAuthenticationModule.cs
- ActivityMarkupSerializationProvider.cs
- ListBase.cs
- DataAdapter.cs
- RegistryPermission.cs
- TreeViewImageIndexConverter.cs
- CheckBoxList.cs
- ClrPerspective.cs
- EntityDataSourceContainerNameItem.cs
- RadialGradientBrush.cs
- TreeNodeStyle.cs
- ApplicationGesture.cs
- Command.cs
- MobileCategoryAttribute.cs
- UserNameServiceElement.cs
- DataGridAddNewRow.cs
- DeobfuscatingStream.cs
- XpsDocument.cs
- FontStyles.cs
- DbExpressionRules.cs
- HttpClientCertificate.cs
- JsonServiceDocumentSerializer.cs
- BrowserDefinitionCollection.cs
- DBSchemaRow.cs
- Rectangle.cs
- PriorityBindingExpression.cs
- MinimizableAttributeTypeConverter.cs
- DetailsViewCommandEventArgs.cs
- AspCompat.cs
- ColumnReorderedEventArgs.cs