The Labs \ Source Viewer \ SSCLI \ System.Xml.Xsl.XsltOld \ ApplyImportsAction

  1. //------------------------------------------------------------------------------
  2. // <copyright file="ApplyImportsAction.cs" company="Microsoft">
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. // </copyright>
  14. //------------------------------------------------------------------------------
  15. namespace System.Xml.Xsl.XsltOld
  16. {
  17.     using Res = System.Xml.Utils.Res;
  18.     using System;
  19.     using System.Diagnostics;
  20.     using System.Xml;
  21.     using System.Xml.XPath;
  22.    
  23.     internal class ApplyImportsAction : CompiledAction
  24.     {
  25.         private XmlQualifiedName mode;
  26.         private Stylesheet stylesheet;
  27.         private const int TemplateProcessed = 2;
  28.         internal override void Compile(Compiler compiler)
  29.         {
  30.             CheckEmpty(compiler);
  31.             if (!compiler.CanHaveApplyImports) {
  32.                 throw XsltException.Create(Res.Xslt_ApplyImports);
  33.             }
  34.             this.mode = compiler.CurrentMode;
  35.             this.stylesheet = compiler.CompiledStylesheet;
  36.         }
  37.        
  38.         internal override void Execute(Processor processor, ActionFrame frame)
  39.         {
  40.             Debug.Assert(processor != null && frame != null);
  41.             switch (frame.State) {
  42.                 case Initialized:
  43.                         /*importsOf:*/                    processor.PushTemplateLookup(frame.NodeSet, this.mode, this.stylesheet);
  44.                     frame.State = TemplateProcessed;
  45.                     break;
  46.                 case TemplateProcessed:
  47.                     frame.Finished();
  48.                     break;
  49.             }
  50.         }
  51.     }
  52. }

Developer Fusion