1 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 fNewFieldName; 22 private String fOldFieldName; 23 private String fProjectName; 24 25 public RenameFieldChange(IField field, String newTypeName) { 26 IType type = field.getDeclaringType(); 27 String parentType = PatternHelper.getFullyQualifiedName(type); 28 String 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 oldFieldName, 36 String newFieldName, 37 String projectName) 38 { 39 fNewFieldName = newFieldName; 40 fOldFieldName = oldFieldName; 41 fProjectName = projectName; 42 } 43 44 public Object getModifiedElement() { 45 return null; 46 } 47 48 public String 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 return new RenameFieldChange(fNewFieldName, fOldFieldName, fProjectName); 69 } 70 } 71 | Popular Tags |