1 19 20 package org.netbeans.modules.refactoring.java.plugins; 21 22 import com.sun.source.tree.*; 23 import javax.lang.model.element.*; 24 import org.netbeans.api.java.source.WorkingCopy; 25 26 30 public class DeleteTransformer extends SearchVisitor { 31 32 public DeleteTransformer(WorkingCopy workingCopy) { 33 super(workingCopy); 34 } 35 36 @Override 37 public Tree visitMethod(MethodTree tree, Element p) { 38 deleteDeclIfMatch(tree, p); 39 return super.visitMethod(tree, p); 40 } 41 42 public Tree visitClass(ClassTree tree, Element p) { 43 deleteDeclIfMatch(tree, p); 44 return super.visitClass(tree, p); 45 } 46 47 public Tree visitVariable(VariableTree tree, Element p) { 48 deleteDeclIfMatch(tree, p); 49 return super.visitVariable(tree, p); 50 } 51 52 private void deleteDeclIfMatch(Tree tree, Element elementToFind) { 53 if (workingCopy.getTreeUtilities().isSynthetic(getCurrentPath())) 54 return ; 55 56 Element el = workingCopy.getTrees().getElement(getCurrentPath()); 57 if (elementToFind.equals(el)) { 58 Tree parent = getCurrentPath().getParentPath().getLeaf(); 59 Tree newOne = null; 60 if (parent.getKind() == Tree.Kind.CLASS) { 61 newOne = make.removeClassMember((ClassTree) parent, tree); 62 } else if (parent.getKind() == Tree.Kind.COMPILATION_UNIT) { 63 newOne = make.removeCompUnitTypeDecl((CompilationUnitTree) parent, tree); 64 } 65 if (newOne!=null) { 66 workingCopy.rewrite(parent,newOne); 67 } 68 addUsage(getCurrentPath()); 69 } 70 } 71 } 72 | Popular Tags |