KickJava   Java API By Example, From Geeks To Geeks.

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


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.IType;
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 RenameTypeChange extends Change {
21   private String JavaDoc fOldTypeName;
22   private String JavaDoc fNewTypeName;
23   private String JavaDoc fProjectName;
24     
25   public RenameTypeChange(IType type, String JavaDoc newTypeName) {
26     fOldTypeName = PatternHelper.getFullyQualifiedName(type);
27     fNewTypeName = StringUtils.replace(fOldTypeName, type.getElementName(), newTypeName);
28     fProjectName = type.getAncestor(IJavaElement.JAVA_PROJECT).getElementName();
29   }
30   
31   public RenameTypeChange(String JavaDoc oldTypeName,
32                           String JavaDoc newTypeName,
33                           String JavaDoc projectName)
34   {
35     fNewTypeName = newTypeName;
36     fOldTypeName = oldTypeName;
37     fProjectName = projectName;
38   }
39
40   public Object JavaDoc getModifiedElement() {
41     return null;
42   }
43   
44   public String JavaDoc getName() {
45     return "TCRenameTypeConfigUpdate";
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, fOldTypeName, fNewTypeName);
61     
62     // create the undo change
63
return new RenameTypeChange(fNewTypeName, fOldTypeName, fProjectName);
64   }
65 }
66
Popular Tags