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.IJavaElement; 12 import org.eclipse.jdt.core.IType; 13 import org.eclipse.ltk.core.refactoring.Change; 14 import org.eclipse.ltk.core.refactoring.RefactoringStatus; 15 16 import org.terracotta.dso.TcPlugin; 17 18 public class MoveTypeChange extends Change { 19 private String fNewTypeName; 20 private String fNewProjectName; 21 private String fOldTypeName; 22 private String fOldProjectName; 23 24 public MoveTypeChange(IType srcType, String newTypeName, String newProjectName) { 25 this(srcType.getFullyQualifiedName(), 26 srcType.getAncestor(IJavaElement.JAVA_PROJECT).getElementName(), 27 newTypeName, 28 newProjectName); 29 } 30 31 public MoveTypeChange(String oldTypeName, 32 String oldProjectName, 33 String newTypeName, 34 String newProjectName) 35 { 36 fNewTypeName = newTypeName; 37 fNewProjectName = newProjectName; 38 fOldTypeName = oldTypeName; 39 fOldProjectName = oldProjectName; 40 } 41 42 public Object getModifiedElement() { 43 return null; 44 } 45 46 public String getName() { 47 return "TCMoveTypeConfigUpdate"; 48 } 49 50 public void initializeValidationData(IProgressMonitor pm) {} 51 52 public RefactoringStatus isValid(IProgressMonitor pm) 53 throws OperationCanceledException 54 { 55 return new RefactoringStatus(); 56 } 57 58 public Change perform(IProgressMonitor pm) { 59 IWorkspace workspace = ResourcesPlugin.getWorkspace(); 60 IProject project = workspace.getRoot().getProject(fOldProjectName); 61 62 TcPlugin.getDefault().replaceConfigText(project, fOldTypeName, fNewTypeName); 63 64 return new MoveTypeChange(fNewTypeName, fNewProjectName, fOldTypeName, fOldProjectName); 66 } 67 } 68 | Popular Tags |