1 /**
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package net.sourceforge.pmd.dcd.graph;
5
6 import java.util.List;
7
8 /**
9 * Adapter class for easy implementation of a NodeVisitor. Subclasses
10 * need only override methods to add behavior, and call <code>super</code> to
11 * continue the visitation.
12 */
13 public class NodeVisitorAdapter implements NodeVisitor {
14
15 public NodeVisitorAdapter() {
16 }
17
18 public Object visit(UsageGraph usageGraph, Object data) {
19 return usageGraph.accept(this, data);
20 }
21
22 public Object visit(ClassNode classNode, Object data) {
23 return classNode.accept(this, data);
24 }
25
26 public Object visitFields(ClassNode classNode, Object data) {
27 for (FieldNode fieldNode : classNode.getFieldNodes()) {
28 visit(fieldNode, data);
29 }
30 return data;
31 }
32
33 public Object visit(FieldNode fieldNode, Object data) {
34 return fieldNode.accept(this, data);
35 }
36
37 public Object visitConstructors(ClassNode classNode, Object data) {
38 for (ConstructorNode constructorNode : classNode.getConstructorNodes()) {
39 visit(constructorNode, data);
40 }
41 return data;
42 }
43
44 public Object visit(ConstructorNode constructorNode, Object data) {
45 return constructorNode.accept(this, data);
46 }
47
48 public Object visitMethods(ClassNode classNode, Object data) {
49 for (MethodNode methodNode : classNode.getMethodNodes()) {
50 visit(methodNode, data);
51 }
52 return data;
53 }
54
55 public Object visit(MethodNode methodNode, Object data) {
56 return methodNode.accept(this, data);
57 }
58
59 public Object visitUses(MemberNode memberNode, Object data) {
60 for (MemberNode use : (List<MemberNode>)memberNode.getUses()) {
61 this.visitUse(use, data);
62 }
63 return data;
64 }
65
66 public Object visitUse(MemberNode memberNode, Object data) {
67 return data;
68 }
69
70 public Object visitUsers(MemberNode memberNode, Object data) {
71 for (MemberNode user : (List<MemberNode>)memberNode.getUsers()) {
72 this.visitUser(user, data);
73 }
74 return data;
75 }
76
77 public Object visitUser(MemberNode memberNode, Object data) {
78 return data;
79 }
80 }