KickJava   Java API By Example, From Geeks To Geeks.

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


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.eclipse.core.resources.IProject;
7 import org.eclipse.core.resources.IWorkspace;
8 import org.eclipse.core.resources.ResourcesPlugin;
9 import org.eclipse.core.runtime.IProgressMonitor;
10 import org.eclipse.core.runtime.OperationCanceledException;
11 import org.eclipse.jdt.core.IField;
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 RenameFieldChange extends Change {
21   private String JavaDoc fNewFieldName;
22   private String JavaDoc fOldFieldName;
23   private String JavaDoc fProjectName;
24     
25   public RenameFieldChange(IField field, String JavaDoc newTypeName) {
26     IType type = field.getDeclaringType();
27     String JavaDoc parentType = PatternHelper.getFullyQualifiedName(type);
28     String JavaDoc fieldName = field.getElementName();
29     
30     fOldFieldName = parentType+"."+fieldName;
31     fNewFieldName = parentType+"."+newTypeName;
32     fProjectName = field.getAncestor(IJavaElement.JAVA_PROJECT).getElementName();
33   }
34   
35   public RenameFieldChange(String JavaDoc oldFieldName,
36                            String JavaDoc newFieldName,
37                            String JavaDoc projectName)
38   {
39     fNewFieldName = newFieldName;
40     fOldFieldName = oldFieldName;
41     fProjectName = projectName;
42   }
43
44   public Object JavaDoc getModifiedElement() {
45     return null;
46   }
47   
48   public String JavaDoc getName() {
49     return "TCRenameFieldConfigUpdate";
50   }
51   
52   public void initializeValidationData(IProgressMonitor pm) {/**/}
53   
54   public RefactoringStatus isValid(IProgressMonitor pm)
55     throws OperationCanceledException
56   {
57     return new RefactoringStatus();
58   }
59   
60   public Change perform(IProgressMonitor pm) {
61     TcPlugin plugin = TcPlugin.getDefault();
62     IWorkspace workspace = ResourcesPlugin.getWorkspace();
63     IProject project = workspace.getRoot().getProject(fProjectName);
64     
65     plugin.getConfigurationHelper(project).renameRoot(fOldFieldName, fNewFieldName);
66     
67     // create the undo change
68
return new RenameFieldChange(fNewFieldName, fOldFieldName, fProjectName);
69   }
70 }
71
Popular Tags