Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / TemplateManager.cs / 1 / TemplateManager.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml.Xsl.XsltOld { using Res = System.Xml.Utils.Res; using System; using System.Diagnostics; using System.Xml; using System.Xml.XPath; using System.Collections; internal class TemplateManager { private XmlQualifiedName mode; internal ArrayList templates; private Stylesheet stylesheet; // Owning stylesheet private class TemplateComparer : IComparer { public int Compare(object x, object y) { Debug.Assert(x != null && x is TemplateAction); Debug.Assert(y != null && y is TemplateAction); TemplateAction tx = (TemplateAction) x; TemplateAction ty = (TemplateAction) y; Debug.Assert(! Double.IsNaN(tx.Priority)); Debug.Assert(! Double.IsNaN(ty.Priority)); if (tx.Priority == ty.Priority) { Debug.Assert(tx.TemplateId != ty.TemplateId || tx == ty); return tx.TemplateId - ty.TemplateId; } else { return tx.Priority > ty.Priority ? 1 : -1; } } } private static TemplateComparer s_TemplateComparer = new TemplateComparer(); internal XmlQualifiedName Mode { get { return this.mode; } } internal TemplateManager(Stylesheet stylesheet, XmlQualifiedName mode) { this.mode = mode; this.stylesheet = stylesheet; } internal void AddTemplate(TemplateAction template) { Debug.Assert(template != null); Debug.Assert( ((object) this.mode == (object) template.Mode) || (template.Mode == null && this.mode.Equals(XmlQualifiedName.Empty)) || this.mode.Equals(template.Mode) ); if (this.templates == null) { this.templates = new ArrayList(); } this.templates.Add(template); } internal void ProcessTemplates() { if (this.templates != null) { this.templates.Sort(s_TemplateComparer); } } internal TemplateAction FindTemplate(Processor processor, XPathNavigator navigator) { if (this.templates == null) { return null; } Debug.Assert(this.templates != null); for (int templateIndex = this.templates.Count - 1; templateIndex >= 0 ; templateIndex --) { TemplateAction action = (TemplateAction) this.templates[templateIndex]; int matchKey = action.MatchKey; if (matchKey != Compiler.InvalidQueryKey) { if (processor.Matches(navigator, matchKey)) { return action; } } } return null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Xml.Xsl.XsltOld { using Res = System.Xml.Utils.Res; using System; using System.Diagnostics; using System.Xml; using System.Xml.XPath; using System.Collections; internal class TemplateManager { private XmlQualifiedName mode; internal ArrayList templates; private Stylesheet stylesheet; // Owning stylesheet private class TemplateComparer : IComparer { public int Compare(object x, object y) { Debug.Assert(x != null && x is TemplateAction); Debug.Assert(y != null && y is TemplateAction); TemplateAction tx = (TemplateAction) x; TemplateAction ty = (TemplateAction) y; Debug.Assert(! Double.IsNaN(tx.Priority)); Debug.Assert(! Double.IsNaN(ty.Priority)); if (tx.Priority == ty.Priority) { Debug.Assert(tx.TemplateId != ty.TemplateId || tx == ty); return tx.TemplateId - ty.TemplateId; } else { return tx.Priority > ty.Priority ? 1 : -1; } } } private static TemplateComparer s_TemplateComparer = new TemplateComparer(); internal XmlQualifiedName Mode { get { return this.mode; } } internal TemplateManager(Stylesheet stylesheet, XmlQualifiedName mode) { this.mode = mode; this.stylesheet = stylesheet; } internal void AddTemplate(TemplateAction template) { Debug.Assert(template != null); Debug.Assert( ((object) this.mode == (object) template.Mode) || (template.Mode == null && this.mode.Equals(XmlQualifiedName.Empty)) || this.mode.Equals(template.Mode) ); if (this.templates == null) { this.templates = new ArrayList(); } this.templates.Add(template); } internal void ProcessTemplates() { if (this.templates != null) { this.templates.Sort(s_TemplateComparer); } } internal TemplateAction FindTemplate(Processor processor, XPathNavigator navigator) { if (this.templates == null) { return null; } Debug.Assert(this.templates != null); for (int templateIndex = this.templates.Count - 1; templateIndex >= 0 ; templateIndex --) { TemplateAction action = (TemplateAction) this.templates[templateIndex]; int matchKey = action.MatchKey; if (matchKey != Compiler.InvalidQueryKey) { if (processor.Matches(navigator, matchKey)) { return action; } } } 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
- ArithmeticException.cs
- GZipUtils.cs
- CryptoHandle.cs
- GreenMethods.cs
- XmlDictionaryReaderQuotas.cs
- CharKeyFrameCollection.cs
- EndPoint.cs
- ApplicationBuildProvider.cs
- TextParaLineResult.cs
- ManipulationDevice.cs
- StackSpiller.Generated.cs
- RadioButton.cs
- XmlSchemaValidationException.cs
- BCLDebug.cs
- AncestorChangedEventArgs.cs
- CodeTypeConstructor.cs
- X509SecurityTokenAuthenticator.cs
- WebPartUtil.cs
- CookieParameter.cs
- Int16AnimationUsingKeyFrames.cs
- DictionarySurrogate.cs
- XhtmlBasicObjectListAdapter.cs
- CommandConverter.cs
- RichTextBox.cs
- DataServiceQuery.cs
- SeverityFilter.cs
- FixedTextPointer.cs
- XmlMemberMapping.cs
- SafeLibraryHandle.cs
- ConstNode.cs
- RSACryptoServiceProvider.cs
- BitmapScalingModeValidation.cs
- EdmItemError.cs
- PKCS1MaskGenerationMethod.cs
- SetterBaseCollection.cs
- PresentationSource.cs
- WebBrowser.cs
- XmlSerializerFactory.cs
- InternalsVisibleToAttribute.cs
- QueryOutputWriter.cs
- Bidi.cs
- TraceSection.cs
- StateWorkerRequest.cs
- TextMetrics.cs
- AnnotationStore.cs
- _HTTPDateParse.cs
- IPPacketInformation.cs
- SoapInteropTypes.cs
- HttpConfigurationSystem.cs
- ThreadExceptionDialog.cs
- WindowsToolbarItemAsMenuItem.cs
- ConstructorNeedsTagAttribute.cs
- WebPartEditorApplyVerb.cs
- SecuritySessionSecurityTokenAuthenticator.cs
- mansign.cs
- SessionSwitchEventArgs.cs
- SubMenuStyle.cs
- BlockCollection.cs
- QilChoice.cs
- CaseStatementProjectedSlot.cs
- Bezier.cs
- SortedList.cs
- MouseGestureConverter.cs
- SQLResource.cs
- InputScopeManager.cs
- SolidBrush.cs
- TreePrinter.cs
- HostingEnvironmentSection.cs
- WindowsIPAddress.cs
- SessionStateItemCollection.cs
- ContentDisposition.cs
- Selection.cs
- SmiEventSink_Default.cs
- PrivacyNoticeBindingElement.cs
- ValueTable.cs
- BinHexEncoder.cs
- MemberDomainMap.cs
- WorkflowServiceBehavior.cs
- ToolStripPanelRenderEventArgs.cs
- DataExchangeServiceBinder.cs
- ArgumentException.cs
- DataGridViewCellStyleChangedEventArgs.cs
- Range.cs
- GeneralTransformGroup.cs
- DataGridViewCellStyleChangedEventArgs.cs
- TransactionManagerProxy.cs
- Quaternion.cs
- PathNode.cs
- PeerCollaborationPermission.cs
- ForwardPositionQuery.cs
- RunClient.cs
- CharEnumerator.cs
- WebPartAuthorizationEventArgs.cs
- Application.cs
- coordinator.cs
- InteropBitmapSource.cs
- BezierSegment.cs
- WebPartDisplayModeCancelEventArgs.cs
- WrappedKeySecurityToken.cs
- Random.cs