package jetbrains.mps.baseLanguage.refactorings; /*Generated by MPS */ import jetbrains.mps.refactoring.framework.BaseRefactoring; import jetbrains.mps.refactoring.framework.IRefactoringTarget; import jetbrains.mps.refactoring.framework.RefactoringContext; import jetbrains.mps.baseLanguage.util.plugin.refactorings.ChangeMethodSignatureRefactoring; import jetbrains.mps.internal.collections.runtime.ListSequence; import java.util.List; import jetbrains.mps.ide.findusages.model.SearchResults; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.ide.findusages.view.FindUtils; import jetbrains.mps.progress.EmptyProgressMonitor; import java.util.ArrayList; import jetbrains.mps.ide.findusages.model.SearchResult; public class ChangeMethodSignature extends BaseRefactoring { public ChangeMethodSignature() { this.addTransientParameter("myRefactorings"); } public IRefactoringTarget getRefactoringTarget() { return new ChangeMethodSignature_Target(); } public String getUserFriendlyName() { return "Change Method Signature"; } public void refactor(final RefactoringContext refactoringContext) { for (ChangeMethodSignatureRefactoring ref : ListSequence.fromList(((List<ChangeMethodSignatureRefactoring>) refactoringContext.getParameter("myRefactorings")))) { ref.doRefactoring(); } } public SearchResults getAffectedNodes(final RefactoringContext refactoringContext) { SearchResults<SNode> allResults = new SearchResults(); for (ChangeMethodSignatureRefactoring ref : ListSequence.fromList(((List<ChangeMethodSignatureRefactoring>) refactoringContext.getParameter("myRefactorings")))) { SearchResults<SNode> curResults = FindUtils.getSearchResults(new EmptyProgressMonitor(), ref.getDeclaration(), refactoringContext.getCurrentScope(), "jetbrains.mps.baseLanguage.findUsages.ExactMethodUsages_Finder"); List<SNode> usages = new ArrayList<SNode>(); for (SearchResult<SNode> result : ListSequence.fromList(curResults.getSearchResults())) { ListSequence.fromList(usages).addElement(result.getObject()); } ref.setUsages(usages); allResults.addAll(curResults); } return allResults; } }