01: package org.acm.seguin.refactor.type;
02:
03: import net.sourceforge.jrefactory.parser.ChildrenVisitor;
04: import net.sourceforge.jrefactory.ast.ASTName;
05: import net.sourceforge.jrefactory.ast.ASTClassOrInterfaceType;
06: import net.sourceforge.jrefactory.ast.ASTUnmodifiedClassDeclaration;
07: import net.sourceforge.jrefactory.parser.JavaParserTreeConstants;
08:
09: /**
10: * Description of the Class
11: *
12: *@author Chris Seguin
13: */
14: public class RenameParentVisitor extends ChildrenVisitor {
15: /**
16: * To visit a node
17: *
18: *@param node The node we are visiting
19: *@param data The rename type data
20: *@return The rename type data
21: */
22: public Object visit(ASTUnmodifiedClassDeclaration node, Object data) {
23: RenameTypeData rtd = (RenameTypeData) data;
24: String oldName = rtd.getOld().getName();
25:
26: if (oldName.equals(node.getName())) {
27: if (node.jjtGetFirstChild() instanceof ASTClassOrInterfaceType) {
28: node.jjtAddChild(new ASTClassOrInterfaceType(rtd
29: .getNew()), 0);
30: } else {
31: node.jjtInsertChild(new ASTClassOrInterfaceType(rtd
32: .getNew()), 0);
33: }
34: }
35:
36: return data;
37: }
38: }
|