1
2
3
4
5
6
7
8
9
10 package org.dom4j;
11
12 /*** <p><code>Visitor</code> is used to implement the <code>Visitor</code>
13 * pattern in DOM4J.
14 * An object of this interface can be passed to a <code>Node</code> which will
15 * then call its typesafe methods.
16 * Please refer to the <i>Gang of Four</i> book of Design Patterns
17 * for more details on the <code>Visitor</code> pattern.</p>
18 *
19 * <p> This
20 * <a href="http://rampages.onramp.net/~huston/dp/patterns.html">article</a>
21 * has further discussion on design patterns and links to the GOF book.
22 * This <a href="http://rampages.onramp.net/~huston/dp/visitor.html">link</a>
23 * describes the Visitor pattern in detail.
24 * </p>
25 *
26 * @author <a href="mailto:james.strachan@metastuff.com">James Strachan</a>
27 * @version $Revision: 1.5 $
28 */
29 public interface Visitor {
30
31 /*** <p>Visits the given <code>Document</code></p>
32 *
33 * @param document is the <code>Document</code> node to visit.
34 */
35 public void visit(Document document);
36
37 /*** <p>Visits the given <code>DocumentType</code></p>
38 *
39 * @param documentType is the <code>DocumentType</code> node to visit.
40 */
41 public void visit(DocumentType documentType);
42
43 /*** <p>Visits the given <code>Element</code></p>
44 *
45 * @param node is the <code>Element</code> node to visit.
46 */
47 public void visit(Element node);
48
49 /*** <p>Visits the given <code>Attribute</code></p>
50 *
51 * @param node is the <code>Attribute</code> node to visit.
52 */
53 public void visit(Attribute node);
54
55 /*** <p>Visits the given <code>CDATA</code></p>
56 *
57 * @param node is the <code>CDATA</code> node to visit.
58 */
59 public void visit(CDATA node);
60
61 /*** <p>Visits the given <code>Comment</code></p>
62 *
63 * @param node is the <code>Comment</code> node to visit.
64 */
65 public void visit(Comment node);
66
67 /*** <p>Visits the given <code>Entity</code></p>
68 *
69 * @param node is the <code>Entity</code> node to visit.
70 */
71 public void visit(Entity node);
72
73 /*** <p>Visits the given <code>Namespace</code></p>
74 *
75 * @param namespace is the <code>Namespace</code> node to visit.
76 */
77 public void visit(Namespace namespace);
78
79 /*** <p>Visits the given <code>ProcessingInstruction</code>
80 * </p>
81 *
82 * @param node is the <code>ProcessingInstruction</code> node to visit.
83 */
84 public void visit(ProcessingInstruction node);
85
86 /*** <p>Visits the given <code>Text</code>
87 * </p>
88 *
89 * @param node is the <code>Text</code> node to visit.
90 */
91 public void visit(Text node);
92
93 }
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141