package jetbrains.mps.idea.core.refactoring; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiReference; import com.intellij.psi.search.searches.ReferencesSearch; import jetbrains.mps.ide.findusages.model.SearchResult; import jetbrains.mps.ide.findusages.model.SearchResults; import jetbrains.mps.ide.project.ProjectHelper; import jetbrains.mps.idea.core.psi.impl.MPSPsiNode; import jetbrains.mps.idea.core.psi.impl.MPSPsiProvider; import jetbrains.mps.refactoring.framework.IRefactoring; import jetbrains.mps.refactoring.framework.IRefactoringTarget; import jetbrains.mps.refactoring.framework.RefactoringContext; import org.jetbrains.mps.openapi.model.SModel; import org.jetbrains.mps.openapi.model.SNode; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.List; /** * danilla 6/14/13 */ // Composite IRefactoring // (we can't inherit from refactorings we need because their classes are in languages' classloaders public class RefactoringWrapper implements IRefactoring { protected final IRefactoring baseRefactoring; public RefactoringWrapper(IRefactoring base) { baseRefactoring = base; } @Override public String getUserFriendlyName() { return baseRefactoring.getUserFriendlyName(); } @Override public Class getOverridenRefactoringClass() { return baseRefactoring.getOverridenRefactoringClass(); } @Override public IRefactoringTarget getRefactoringTarget() { return baseRefactoring.getRefactoringTarget(); } @Override public boolean init(RefactoringContext refactoringContext) { return baseRefactoring.init(refactoringContext); } @Override public void refactor(RefactoringContext refactoringContext) { baseRefactoring.refactor(refactoringContext); } @Override public List<SModel> getModelsToGenerate(RefactoringContext refactoringContext) { return baseRefactoring.getModelsToGenerate(refactoringContext); } @Override public void doWhenDone(RefactoringContext refactoringContext) { baseRefactoring.doWhenDone(refactoringContext); } @Override public SearchResults getAffectedNodes(RefactoringContext refactoringContext) { return baseRefactoring.getAffectedNodes(refactoringContext); } }