File: XslVisitor.cs

package info (click to toggle)
mono 6.14.1%2Bds2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,282,732 kB
  • sloc: cs: 11,182,461; xml: 2,850,281; ansic: 699,123; cpp: 122,919; perl: 58,604; javascript: 30,841; asm: 21,845; makefile: 19,602; sh: 10,973; python: 4,772; pascal: 925; sql: 859; sed: 16; php: 1
file content (88 lines) | stat: -rw-r--r-- 7,223 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
//------------------------------------------------------------------------------
// <copyright file="XslVisitor.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
// <owner current="true" primary="true">Microsoft</owner>
//------------------------------------------------------------------------------

namespace System.Xml.Xsl.Xslt {

    internal abstract class XslVisitor<T> {
        protected virtual T Visit(XslNode node) {
            switch (node.NodeType) {
            case XslNodeType.ApplyImports      : return VisitApplyImports    ((XslNode)     node);
            case XslNodeType.ApplyTemplates    : return VisitApplyTemplates  ((XslNode)     node);
            case XslNodeType.Attribute         : return VisitAttribute       ((NodeCtor)    node);
            case XslNodeType.AttributeSet      : return VisitAttributeSet    ((AttributeSet)node);
            case XslNodeType.CallTemplate      : return VisitCallTemplate    ((XslNode)     node);
            case XslNodeType.Choose            : return VisitChoose          ((XslNode)     node);
            case XslNodeType.Comment           : return VisitComment         ((XslNode)     node);
            case XslNodeType.Copy              : return VisitCopy            ((XslNode)     node);
            case XslNodeType.CopyOf            : return VisitCopyOf          ((XslNode)     node);
            case XslNodeType.Element           : return VisitElement         ((NodeCtor)    node);
            case XslNodeType.Error             : return VisitError           ((XslNode)     node);
            case XslNodeType.ForEach           : return VisitForEach         ((XslNode)     node);
            case XslNodeType.If                : return VisitIf              ((XslNode)     node);
            case XslNodeType.Key               : return VisitKey             ((Key)         node);
            case XslNodeType.List              : return VisitList            ((XslNode)     node);
            case XslNodeType.LiteralAttribute  : return VisitLiteralAttribute((XslNode)     node);
            case XslNodeType.LiteralElement    : return VisitLiteralElement  ((XslNode)     node);
            case XslNodeType.Message           : return VisitMessage         ((XslNode)     node);
            case XslNodeType.Nop               : return VisitNop             ((XslNode)     node);
            case XslNodeType.Number            : return VisitNumber          ((Number)      node);
            case XslNodeType.Otherwise         : return VisitOtherwise       ((XslNode)     node);
            case XslNodeType.Param             : return VisitParam           ((VarPar)      node);
            case XslNodeType.PI                : return VisitPI              ((XslNode)     node);
            case XslNodeType.Sort              : return VisitSort            ((Sort)        node);
            case XslNodeType.Template          : return VisitTemplate        ((Template)    node);
            case XslNodeType.Text              : return VisitText            ((Text)        node);
            case XslNodeType.UseAttributeSet   : return VisitUseAttributeSet ((XslNode)     node);
            case XslNodeType.ValueOf           : return VisitValueOf         ((XslNode)     node);
            case XslNodeType.ValueOfDoe        : return VisitValueOfDoe      ((XslNode)     node);
            case XslNodeType.Variable          : return VisitVariable        ((VarPar)      node);
            case XslNodeType.WithParam         : return VisitWithParam       ((VarPar)      node);
            default                            : return VisitUnknown         ((XslNode)     node);
            }
        }

        protected virtual T VisitApplyImports    (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitApplyTemplates  (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitAttribute       (NodeCtor     node) { return VisitChildren( node ); }
        protected virtual T VisitAttributeSet    (AttributeSet node) { return VisitChildren( node ); }
        protected virtual T VisitCallTemplate    (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitChoose          (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitComment         (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitCopy            (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitCopyOf          (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitElement         (NodeCtor     node) { return VisitChildren( node ); }
        protected virtual T VisitError           (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitForEach         (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitIf              (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitKey             (Key          node) { return VisitChildren( node ); }
        protected virtual T VisitList            (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitLiteralAttribute(XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitLiteralElement  (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitMessage         (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitNop             (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitNumber          (Number       node) { return VisitChildren( node ); }
        protected virtual T VisitOtherwise       (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitParam           (VarPar       node) { return VisitChildren( node ); }
        protected virtual T VisitPI              (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitSort            (Sort         node) { return VisitChildren( node ); }
        protected virtual T VisitTemplate        (Template     node) { return VisitChildren( node ); }
        protected virtual T VisitText            (Text         node) { return VisitChildren( node ); }
        protected virtual T VisitUseAttributeSet (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitValueOf         (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitValueOfDoe      (XslNode      node) { return VisitChildren( node ); }
        protected virtual T VisitVariable        (VarPar       node) { return VisitChildren( node ); }
        protected virtual T VisitWithParam       (VarPar       node) { return VisitChildren( node ); }
        protected virtual T VisitUnknown         (XslNode      node) { return VisitChildren( node ); }

        protected virtual T VisitChildren(XslNode node) {
            foreach (XslNode child in node.Content) {
                this.Visit(child);
            }
            return default(T);
        }
    }
}