The Labs \ Source Viewer \ SSCLI \ System.Xml.Xsl.Xslt \ XslVisitor

  1. //------------------------------------------------------------------------------
  2. // <copyright file="XslVisitor.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.Xslt
  16. {
  17.    
  18.     internal abstract class XslVisitor<T>
  19.     {
  20.         protected virtual T Visit(XslNode node)
  21.         {
  22.             switch (node.NodeType) {
  23.                 case XslNodeType.ApplyImports:
  24.                     return VisitApplyImports((XslNode)node);
  25.                 case XslNodeType.ApplyTemplates:
  26.                     return VisitApplyTemplates((XslNode)node);
  27.                 case XslNodeType.Attribute:
  28.                     return VisitAttribute((NodeCtor)node);
  29.                 case XslNodeType.AttributeSet:
  30.                     return VisitAttributeSet((AttributeSet)node);
  31.                 case XslNodeType.CallTemplate:
  32.                     return VisitCallTemplate((XslNode)node);
  33.                 case XslNodeType.Choose:
  34.                     return VisitChoose((XslNode)node);
  35.                 case XslNodeType.Comment:
  36.                     return VisitComment((XslNode)node);
  37.                 case XslNodeType.Copy:
  38.                     return VisitCopy((XslNode)node);
  39.                 case XslNodeType.CopyOf:
  40.                     return VisitCopyOf((XslNode)node);
  41.                 case XslNodeType.Element:
  42.                     return VisitElement((NodeCtor)node);
  43.                 case XslNodeType.Error:
  44.                     return VisitError((XslNode)node);
  45.                 case XslNodeType.ForEach:
  46.                     return VisitForEach((XslNode)node);
  47.                 case XslNodeType.If:
  48.                     return VisitIf((XslNode)node);
  49.                 case XslNodeType.Key:
  50.                     return VisitKey((Key)node);
  51.                 case XslNodeType.List:
  52.                     return VisitList((XslNode)node);
  53.                 case XslNodeType.LiteralAttribute:
  54.                     return VisitLiteralAttribute((XslNode)node);
  55.                 case XslNodeType.LiteralElement:
  56.                     return VisitLiteralElement((XslNode)node);
  57.                 case XslNodeType.Message:
  58.                     return VisitMessage((XslNode)node);
  59.                 case XslNodeType.Nop:
  60.                     return VisitNop((XslNode)node);
  61.                 case XslNodeType.Number:
  62.                     return VisitNumber((Number)node);
  63.                 case XslNodeType.Otherwise:
  64.                     return VisitOtherwise((XslNode)node);
  65.                 case XslNodeType.Param:
  66.                     return VisitParam((VarPar)node);
  67.                 case XslNodeType.PI:
  68.                     return VisitPI((XslNode)node);
  69.                 case XslNodeType.Sort:
  70.                     return VisitSort((Sort)node);
  71.                 case XslNodeType.Template:
  72.                     return VisitTemplate((Template)node);
  73.                 case XslNodeType.Text:
  74.                     return VisitText((Text)node);
  75.                 case XslNodeType.UseAttributeSet:
  76.                     return VisitUseAttributeSet((XslNode)node);
  77.                 case XslNodeType.ValueOf:
  78.                     return VisitValueOf((XslNode)node);
  79.                 case XslNodeType.ValueOfDoe:
  80.                     return VisitValueOfDoe((XslNode)node);
  81.                 case XslNodeType.Variable:
  82.                     return VisitVariable((VarPar)node);
  83.                 case XslNodeType.WithParam:
  84.                     return VisitWithParam((VarPar)node);
  85.                 default:
  86.                     return VisitUnknown((XslNode)node);
  87.             }
  88.         }
  89.        
  90.         protected virtual T VisitApplyImports(XslNode node)
  91.         {
  92.             return VisitChildren(node);
  93.         }
  94.         protected virtual T VisitApplyTemplates(XslNode node)
  95.         {
  96.             return VisitChildren(node);
  97.         }
  98.         protected virtual T VisitAttribute(NodeCtor node)
  99.         {
  100.             return VisitChildren(node);
  101.         }
  102.         protected virtual T VisitAttributeSet(AttributeSet node)
  103.         {
  104.             return VisitChildren(node);
  105.         }
  106.         protected virtual T VisitCallTemplate(XslNode node)
  107.         {
  108.             return VisitChildren(node);
  109.         }
  110.         protected virtual T VisitChoose(XslNode node)
  111.         {
  112.             return VisitChildren(node);
  113.         }
  114.         protected virtual T VisitComment(XslNode node)
  115.         {
  116.             return VisitChildren(node);
  117.         }
  118.         protected virtual T VisitCopy(XslNode node)
  119.         {
  120.             return VisitChildren(node);
  121.         }
  122.         protected virtual T VisitCopyOf(XslNode node)
  123.         {
  124.             return VisitChildren(node);
  125.         }
  126.         protected virtual T VisitElement(NodeCtor node)
  127.         {
  128.             return VisitChildren(node);
  129.         }
  130.         protected virtual T VisitError(XslNode node)
  131.         {
  132.             return VisitChildren(node);
  133.         }
  134.         protected virtual T VisitForEach(XslNode node)
  135.         {
  136.             return VisitChildren(node);
  137.         }
  138.         protected virtual T VisitIf(XslNode node)
  139.         {
  140.             return VisitChildren(node);
  141.         }
  142.         protected virtual T VisitKey(Key node)
  143.         {
  144.             return VisitChildren(node);
  145.         }
  146.         protected virtual T VisitList(XslNode node)
  147.         {
  148.             return VisitChildren(node);
  149.         }
  150.         protected virtual T VisitLiteralAttribute(XslNode node)
  151.         {
  152.             return VisitChildren(node);
  153.         }
  154.         protected virtual T VisitLiteralElement(XslNode node)
  155.         {
  156.             return VisitChildren(node);
  157.         }
  158.         protected virtual T VisitMessage(XslNode node)
  159.         {
  160.             return VisitChildren(node);
  161.         }
  162.         protected virtual T VisitNop(XslNode node)
  163.         {
  164.             return VisitChildren(node);
  165.         }
  166.         protected virtual T VisitNumber(Number node)
  167.         {
  168.             return VisitChildren(node);
  169.         }
  170.         protected virtual T VisitOtherwise(XslNode node)
  171.         {
  172.             return VisitChildren(node);
  173.         }
  174.         protected virtual T VisitParam(VarPar node)
  175.         {
  176.             return VisitChildren(node);
  177.         }
  178.         protected virtual T VisitPI(XslNode node)
  179.         {
  180.             return VisitChildren(node);
  181.         }
  182.         protected virtual T VisitSort(Sort node)
  183.         {
  184.             return VisitChildren(node);
  185.         }
  186.         protected virtual T VisitTemplate(Template node)
  187.         {
  188.             return VisitChildren(node);
  189.         }
  190.         protected virtual T VisitText(Text node)
  191.         {
  192.             return VisitChildren(node);
  193.         }
  194.         protected virtual T VisitUseAttributeSet(XslNode node)
  195.         {
  196.             return VisitChildren(node);
  197.         }
  198.         protected virtual T VisitValueOf(XslNode node)
  199.         {
  200.             return VisitChildren(node);
  201.         }
  202.         protected virtual T VisitValueOfDoe(XslNode node)
  203.         {
  204.             return VisitChildren(node);
  205.         }
  206.         protected virtual T VisitVariable(VarPar node)
  207.         {
  208.             return VisitChildren(node);
  209.         }
  210.         protected virtual T VisitWithParam(VarPar node)
  211.         {
  212.             return VisitChildren(node);
  213.         }
  214.         protected virtual T VisitUnknown(XslNode node)
  215.         {
  216.             return VisitChildren(node);
  217.         }
  218.        
  219.         protected virtual T VisitChildren(XslNode node)
  220.         {
  221.             foreach (XslNode child in node.Content) {
  222.                 this.Visit(child);
  223.             }
  224.             return default(T);
  225.         }
  226.     }
  227. }

Developer Fusion