Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / XsltOld / TemplateManager.cs / 1305376 / 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
- DependsOnAttribute.cs
- XmlSchemaGroupRef.cs
- GridViewDeletedEventArgs.cs
- AccessKeyManager.cs
- Attributes.cs
- Claim.cs
- TableItemPattern.cs
- UrlAuthorizationModule.cs
- Semaphore.cs
- OperatingSystemVersionCheck.cs
- CodeTypeParameterCollection.cs
- GridViewUpdateEventArgs.cs
- Journaling.cs
- DbProviderFactories.cs
- DBSqlParserColumnCollection.cs
- XmlSerializerAssemblyAttribute.cs
- DataGridViewRowEventArgs.cs
- StrokeCollection2.cs
- DataGridViewColumnEventArgs.cs
- SqlTriggerContext.cs
- QuestionEventArgs.cs
- xml.cs
- HashAlgorithm.cs
- ColorPalette.cs
- ServiceBusyException.cs
- ObjectSet.cs
- WinEventTracker.cs
- altserialization.cs
- CellParagraph.cs
- Bidi.cs
- ParagraphResult.cs
- ReadOnlyDictionary.cs
- DistinctQueryOperator.cs
- EventSourceCreationData.cs
- BrowserTree.cs
- XamlPointCollectionSerializer.cs
- MasterPage.cs
- FrameSecurityDescriptor.cs
- TransformationRules.cs
- StopRoutingHandler.cs
- CSharpCodeProvider.cs
- TemplateBamlTreeBuilder.cs
- FileLogRecordHeader.cs
- TablePattern.cs
- EntitySetBase.cs
- ListBox.cs
- ISO2022Encoding.cs
- UnsafeNativeMethods.cs
- FileStream.cs
- ContextBase.cs
- SslStream.cs
- Expander.cs
- CodeActivityContext.cs
- CachedBitmap.cs
- NameObjectCollectionBase.cs
- FileSystemInfo.cs
- DecimalConstantAttribute.cs
- BadImageFormatException.cs
- ProfessionalColors.cs
- CoreSwitches.cs
- ArrayListCollectionBase.cs
- BCLDebug.cs
- DataProviderNameConverter.cs
- IdentityNotMappedException.cs
- SourceFilter.cs
- URLMembershipCondition.cs
- SelectedCellsCollection.cs
- FusionWrap.cs
- TTSEngineTypes.cs
- GlyphElement.cs
- FilterQuery.cs
- ColorAnimationBase.cs
- SqlVisitor.cs
- SearchForVirtualItemEventArgs.cs
- UIAgentAsyncParams.cs
- WindowsFormsLinkLabel.cs
- RoleManagerEventArgs.cs
- LogRecordSequence.cs
- XmlDocumentType.cs
- UnicodeEncoding.cs
- SchemaMapping.cs
- PersistenceProvider.cs
- LineInfo.cs
- activationcontext.cs
- JpegBitmapDecoder.cs
- RTLAwareMessageBox.cs
- peernodeimplementation.cs
- Viewport3DAutomationPeer.cs
- Size3DValueSerializer.cs
- DbDeleteCommandTree.cs
- Misc.cs
- PermissionToken.cs
- XmlFormatExtensionPrefixAttribute.cs
- BoolExpression.cs
- ExtensionDataObject.cs
- XmlMapping.cs
- ObjectViewListener.cs
- ResourceSetExpression.cs
- GraphicsPathIterator.cs
- RSAOAEPKeyExchangeFormatter.cs