Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- BevelBitmapEffect.cs
- WebBrowserPermission.cs
- QuestionEventArgs.cs
- RotateTransform.cs
- EventListener.cs
- GridViewUpdateEventArgs.cs
- Utility.cs
- UnsafeNativeMethods.cs
- SspiNegotiationTokenProviderState.cs
- BridgeDataReader.cs
- TextEditorCharacters.cs
- VisualStyleElement.cs
- SelectionGlyph.cs
- XmlDataProvider.cs
- WindowsSpinner.cs
- PerformanceCountersElement.cs
- CompiledQuery.cs
- SearchForVirtualItemEventArgs.cs
- MDIWindowDialog.cs
- DataGridViewColumnStateChangedEventArgs.cs
- Int16Storage.cs
- Int32Rect.cs
- Point4DValueSerializer.cs
- DataFieldConverter.cs
- ReflectionPermission.cs
- Marshal.cs
- FontWeights.cs
- PrimitiveSchema.cs
- SoundPlayer.cs
- EdmType.cs
- Brush.cs
- RadioButtonRenderer.cs
- DataServiceQueryProvider.cs
- ReaderContextStackData.cs
- DesignerAutoFormatStyle.cs
- Registry.cs
- NavigationService.cs
- MeshGeometry3D.cs
- ConfigLoader.cs
- NavigationCommands.cs
- GlyphInfoList.cs
- DataGridViewCheckBoxCell.cs
- GeneralTransform3DGroup.cs
- ActivationServices.cs
- FieldInfo.cs
- RuntimeWrappedException.cs
- ElementHostAutomationPeer.cs
- DataGridViewSelectedCellCollection.cs
- RoutedUICommand.cs
- StateDesigner.Helpers.cs
- UserControl.cs
- FieldBuilder.cs
- ConfigurationPropertyCollection.cs
- CodeAccessSecurityEngine.cs
- DBCSCodePageEncoding.cs
- DiagnosticSection.cs
- TextAction.cs
- GlobalizationAssembly.cs
- DebuggerAttributes.cs
- XMLDiffLoader.cs
- ErrorWrapper.cs
- ButtonFlatAdapter.cs
- ProtocolImporter.cs
- rsa.cs
- SplayTreeNode.cs
- CodeGenerator.cs
- LayoutTable.cs
- Menu.cs
- DataColumnMappingCollection.cs
- ProfilePropertyMetadata.cs
- EmptyStringExpandableObjectConverter.cs
- XdrBuilder.cs
- ControlDesignerState.cs
- AddInControllerImpl.cs
- CommandTreeTypeHelper.cs
- UnsafeNativeMethods.cs
- BuildProvider.cs
- xdrvalidator.cs
- EditingCoordinator.cs
- XamlTypeMapper.cs
- MultiPropertyDescriptorGridEntry.cs
- InvalidWMPVersionException.cs
- XmlSchemaImport.cs
- UserControl.cs
- BoolExpr.cs
- ServiceDescriptions.cs
- StrokeNodeOperations.cs
- ToolboxComponentsCreatingEventArgs.cs
- securitycriticaldataClass.cs
- ProvidePropertyAttribute.cs
- ListDictionary.cs
- ADMembershipProvider.cs
- XmlLoader.cs
- CodeAccessPermission.cs
- SigningDialog.cs
- DataBoundControl.cs
- Interlocked.cs
- SqlUtil.cs
- QilPatternVisitor.cs
- ProfileSettings.cs