Code:
/ 4.0 / 4.0 / 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.
//------------------------------------------------------------------------------
//
// 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
- ReachDocumentReferenceSerializerAsync.cs
- TableAdapterManagerMethodGenerator.cs
- EntityExpressionVisitor.cs
- SerializationInfoEnumerator.cs
- MetadataArtifactLoaderComposite.cs
- EntityDataSourceUtil.cs
- Base64WriteStateInfo.cs
- CacheChildrenQuery.cs
- ProfileSettings.cs
- SrgsElementFactory.cs
- DataColumnMapping.cs
- XamlReader.cs
- Lasso.cs
- VersionUtil.cs
- UdpContractFilterBehavior.cs
- ToolStripPanelRow.cs
- ThaiBuddhistCalendar.cs
- IndentedTextWriter.cs
- SqlBooleanMismatchVisitor.cs
- TraceHwndHost.cs
- SqlNode.cs
- SettingsSavedEventArgs.cs
- Monitor.cs
- XPathArrayIterator.cs
- HttpRequestCacheValidator.cs
- EntityObject.cs
- ImagingCache.cs
- Number.cs
- SystemIPv6InterfaceProperties.cs
- CircleHotSpot.cs
- FloaterBaseParagraph.cs
- DataTableCollection.cs
- QilUnary.cs
- RtfToXamlLexer.cs
- ConstraintManager.cs
- LoadedOrUnloadedOperation.cs
- Mutex.cs
- Match.cs
- UpdateCompiler.cs
- ConfigDefinitionUpdates.cs
- DbParameterHelper.cs
- Token.cs
- BackStopAuthenticationModule.cs
- BitmapEffect.cs
- ObjectParameterCollection.cs
- AppDomainFactory.cs
- UniqueConstraint.cs
- PlanCompilerUtil.cs
- SortAction.cs
- PointLightBase.cs
- ClockGroup.cs
- Thickness.cs
- CodeParameterDeclarationExpressionCollection.cs
- PriorityRange.cs
- ValueTable.cs
- ContentValidator.cs
- StyleCollection.cs
- StreamWriter.cs
- SqlBinder.cs
- PrintDialog.cs
- FrameworkElement.cs
- GradientStopCollection.cs
- ServiceConfigurationTraceRecord.cs
- CookieParameter.cs
- StringComparer.cs
- DataBindingHandlerAttribute.cs
- IDispatchConstantAttribute.cs
- ToolStripHighContrastRenderer.cs
- entityreference_tresulttype.cs
- DriveNotFoundException.cs
- LabelEditEvent.cs
- ParamArrayAttribute.cs
- linebase.cs
- CrossContextChannel.cs
- OdbcDataAdapter.cs
- SqlDesignerDataSourceView.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- WindowsRegion.cs
- PackageStore.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- BindingContext.cs
- SemanticAnalyzer.cs
- ConfigurationManager.cs
- X509CertificateCollection.cs
- MetadataHelper.cs
- TextEncodedRawTextWriter.cs
- Baml6ConstructorInfo.cs
- DataSetMappper.cs
- WindowsTooltip.cs
- SystemIPv6InterfaceProperties.cs
- NullRuntimeConfig.cs
- QueueProcessor.cs
- LinearKeyFrames.cs
- HwndSource.cs
- Helper.cs
- SchemaSetCompiler.cs
- CounterSet.cs
- CorrelationActionMessageFilter.cs
- WebPartZoneAutoFormat.cs
- SecurityDescriptor.cs