KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > terracotta > dso > refactoring > RenameMethodChange


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package org.terracotta.dso.refactoring;
5
6 import org.apache.commons.lang.StringUtils;
7 import org.eclipse.core.resources.IProject;
8 import org.eclipse.core.resources.IWorkspace;
9 import org.eclipse.core.resources.ResourcesPlugin;
10 import org.eclipse.core.runtime.IProgressMonitor;
11 import org.eclipse.core.runtime.OperationCanceledException;
12 import org.eclipse.jdt.core.IJavaElement;
13 import org.eclipse.jdt.core.IMethod;
14 import org.eclipse.ltk.core.refactoring.Change;
15 import org.eclipse.ltk.core.refactoring.RefactoringStatus;
16
17 import org.terracotta.dso.PatternHelper;
18 import org.terracotta.dso.TcPlugin;
19
20 public class RenameMethodChange extends Change {
21   private String JavaDoc fOldMethodName;
22   private String JavaDoc fNewMethodName;
23   private String JavaDoc fProjectName;
24     
25   public RenameMethodChange(IMethod method, String JavaDoc newMethodName) {
26     fOldMethodName = PatternHelper.getFullName(method);
27     fNewMethodName = StringUtils.replace(fOldMethodName, method.getElementName(), newMethodName);
28     fProjectName = method.getAncestor(IJavaElement.JAVA_PROJECT).getElementName();
29   }
30   
31   public RenameMethodChange(String JavaDoc oldMethodName,
32                            String JavaDoc newMethodName,
33                            String JavaDoc projectName)
34   {
35     fNewMethodName = newMethodName;
36     fOldMethodName = oldMethodName;
37     fProjectName = projectName;
38   }
39
40   public Object JavaDoc getModifiedElement() {
41     return null;
42   }
43   
44   public String JavaDoc getName() {
45     return "TCRenameMethodConfigUpdate";
46   }
47   
48   public void initializeValidationData(IProgressMonitor pm) {/**/}
49   
50   public RefactoringStatus isValid(IProgressMonitor pm)
51     throws OperationCanceledException
52   {
53     return new RefactoringStatus();
54   }
55   
56   public Change perform(IProgressMonitor pm) {
57     IWorkspace workspace = ResourcesPlugin.getWorkspace();
58     IProject project = workspace.getRoot().getProject(fProjectName);
59     
60     TcPlugin.getDefault().replaceConfigText(project, fOldMethodName, fNewMethodName);
61     
62     // create the undo change
63
return new RenameMethodChange(fNewMethodName, fOldMethodName, fProjectName);
64   }
65 }
66
Popular Tags