/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.dcd.graph; import java.util.List; /** * Adapter class for easy implementation of a NodeVisitor. Subclasses need only * override methods to add behavior, and call <code>super</code> to continue the * visitation. */ public class NodeVisitorAdapter implements NodeVisitor { @Override public Object visit(UsageGraph usageGraph, Object data) { return usageGraph.accept(this, data); } @Override public Object visit(ClassNode classNode, Object data) { return classNode.accept(this, data); } @Override public Object visitFields(ClassNode classNode, Object data) { for (FieldNode fieldNode : classNode.getFieldNodes()) { visit(fieldNode, data); } return data; } @Override public Object visit(FieldNode fieldNode, Object data) { return fieldNode.accept(this, data); } @Override public Object visitConstructors(ClassNode classNode, Object data) { for (ConstructorNode constructorNode : classNode.getConstructorNodes()) { visit(constructorNode, data); } return data; } @Override public Object visit(ConstructorNode constructorNode, Object data) { return constructorNode.accept(this, data); } @Override public Object visitMethods(ClassNode classNode, Object data) { for (MethodNode methodNode : classNode.getMethodNodes()) { visit(methodNode, data); } return data; } @Override public Object visit(MethodNode methodNode, Object data) { return methodNode.accept(this, data); } @Override public Object visitUses(MemberNode memberNode, Object data) { for (MemberNode use : (List<MemberNode>) memberNode.getUses()) { this.visitUse(use, data); } return data; } @Override public Object visitUse(MemberNode memberNode, Object data) { return data; } @Override public Object visitUsers(MemberNode memberNode, Object data) { for (MemberNode user : (List<MemberNode>) memberNode.getUsers()) { this.visitUser(user, data); } return data; } @Override public Object visitUser(MemberNode memberNode, Object data) { return data; } }