/** * Creates a new rename method processor. * @param method the method, or <code>null</code> if invoked by scripting */ protected RenameMethodProcessor(IMethod method) { this(method, new TextChangeManager(true), null); fIsComposite= false; } /**
private TextChangeManager createChanges(IProgressMonitor pm, RefactoringStatus status) throws CoreException { if (!fIsComposite) fChangeManager.clear(); addOccurrences(fChangeManager, pm, status); return fChangeManager; }
private static TextChange getTextChange(SearchMatch searchResult, TextChangeManager manager) { ICompilationUnit cu= SearchUtils.getCompilationUnit(searchResult); if (cu == null) return null; return manager.get(cu); }
public RefactoringStatus checkFinalConditions(IProgressMonitor pm) throws CoreException { pm.beginTask("", 20); //$NON-NLS-1$ fChangeManager= new TextChangeManager(); RefactoringStatus result= new RefactoringStatus(); fSourceProvider.initialize(); boolean added= false; MultiTextEdit root= new MultiTextEdit(); CompilationUnitChange change= (CompilationUnitChange)fChangeManager.get(unit); change.setEdit(root); BodyDeclaration[] bodies= fTargetProvider.getAffectedBodyDeclarations(unit, new SubProgressMonitor(pm, 1)); fChangeManager.remove(unit); } else { root.addChild(inliner.getModifications());
final DynamicValidationRefactoringChange result= new DynamicValidationRefactoringChange(descriptor, RefactoringCoreMessages.RenameTypeProcessor_change_name); if (fChangeManager.containsChangesIn(fType.getCompilationUnit())) { TextChange textChange= fChangeManager.get(fType.getCompilationUnit()); if (textChange instanceof TextFileChange) { ((TextFileChange) textChange).setSaveMode(TextFileChange.FORCE_SAVE); result.addAll(fChangeManager.getAllChanges()); if (willRenameCU()) { IResource resource= fType.getCompilationUnit().getResource();
@Override protected IFile[] getChangedFiles() throws CoreException { return ResourceUtil.getFiles(fChangeManager.getAllCompilationUnits()); }
public Change[] getAllChanges() { return fChangeManager.getAllChanges(); }
private void addDeclarationUpdate(TextChangeManager manager) throws CoreException { if (getDelegateUpdating()) { // create the delegate CompilationUnitRewrite rewrite= new CompilationUnitRewrite(getDeclaringCU()); rewrite.setResolveBindings(true); MethodDeclaration methodDeclaration= ASTNodeSearchUtil.getMethodDeclarationNode(getMethod(), rewrite.getRoot()); DelegateMethodCreator creator= new DelegateMethodCreator(); creator.setDeclaration(methodDeclaration); creator.setDeclareDeprecated(getDeprecateDelegates()); creator.setSourceRewrite(rewrite); creator.setCopy(true); creator.setNewElementName(getNewElementName()); creator.prepareDelegate(); creator.createEdit(); CompilationUnitChange cuChange= rewrite.createChange(true); if (cuChange != null) { cuChange.setKeepPreviewEdits(true); manager.manage(getDeclaringCU(), cuChange); } } String editName= RefactoringCoreMessages.RenameMethodRefactoring_update_declaration; ISourceRange nameRange= getMethod().getNameRange(); ReplaceEdit replaceEdit= new ReplaceEdit(nameRange.getOffset(), nameRange.getLength(), getNewElementName()); addTextEdit(manager.get(getDeclaringCU()), editName, replaceEdit); }
private Change createReferenceUpdatingMoveChange(IProgressMonitor pm) throws JavaModelException { pm.beginTask("", 2 + (fUpdateQualifiedNames ? 1 : 0)); //$NON-NLS-1$ try { CompositeChange composite= new DynamicValidationStateChange(RefactoringCoreMessages.ReorgPolicy_move); composite.markAsSynthetic(); // XX workaround for bug 13558 // <workaround> if (fChangeManager == null) { fChangeManager= createChangeManager(new SubProgressMonitor(pm, 1), new RefactoringStatus()); // TODO: non-CU matches silently dropped RefactoringStatus status= Checks.validateModifiesFiles(getAllModifiedFiles(), null); if (status.hasFatalError()) fChangeManager= new TextChangeManager(); } // </workaround> composite.merge(new CompositeChange(RefactoringCoreMessages.MoveRefactoring_reorganize_elements, fChangeManager.getAllChanges())); Change fileMove= createSimpleMoveChange(new SubProgressMonitor(pm, 1)); if (fileMove instanceof CompositeChange) { composite.merge(((CompositeChange) fileMove)); } else { composite.add(fileMove); } return composite; } finally { pm.done(); } }
public RefactoringStatus checkFinalConditions(IProgressMonitor pm) throws CoreException { RefactoringStatus result= new RefactoringStatus(); fChangeManager.clear(); pm.beginTask(NO_NAME, 12); pm.setTaskName(RefactoringCoreMessages.SelfEncapsulateField_checking_preconditions); fSetterMustReturnValue= analyzer.getSetterMustReturnValue(); if (result.hasFatalError()) { fChangeManager.clear(); return result; IFile[] filesToBeModified= ResourceUtil.getFiles(fChangeManager.getAllCompilationUnits()); result.merge(Checks.validateModifiesFiles(filesToBeModified, getValidationContext())); if (result.hasFatalError())
private void createChangeAndDiscardRewrite(ICompilationUnit compilationUnit) throws CoreException { CompilationUnitRewrite rewrite= fRewrites.get(compilationUnit); if (rewrite != null) { fTextChangeManager.manage(compilationUnit, rewrite.createChange(true)); fRewrites.remove(compilationUnit); } }
@Override public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException { pm.beginTask(RefactoringCoreMessages.ExtractClassRefactoring_progress_create_change, 10); try { ICompilationUnit typeCU= fDescriptor.getType().getCompilationUnit(); IPackageFragmentRoot packageRoot= (IPackageFragmentRoot) typeCU.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); ArrayList<Change> changes= new ArrayList<>(); changes.addAll(createParameterObject(fParameterObjectFactory, packageRoot)); fChangeManager.manage(typeCU, fBaseCURewrite.createChange(true, pm)); changes.addAll(Arrays.asList(fChangeManager.getAllChanges())); String project= fDescriptor.getType().getJavaProject().getElementName(); fDescriptor.setProject(project); fDescriptor.setDescription(getName()); fDescriptor.setComment(createComment()); DynamicValidationRefactoringChange change= new DynamicValidationRefactoringChange(fDescriptor, RefactoringCoreMessages.ExtractClassRefactoring_change_name, changes .toArray(new Change[changes.size()])); return change; } finally { pm.done(); } }
private static TextChangeManager createChangeManager(IProgressMonitor monitor, ICompilationUnit copy, String newName) throws CoreException { TextChangeManager manager= new TextChangeManager(); SearchResultGroup refs= getReferences(copy, monitor); if (refs == null) return manager; if (refs.getCompilationUnit() == null) return manager; String name= RefactoringCoreMessages.CopyRefactoring_update_ref; SearchMatch[] results= refs.getSearchResults(); for (int j= 0; j < results.length; j++) { SearchMatch searchResult= results[j]; if (searchResult.getAccuracy() == SearchMatch.A_INACCURATE) continue; int offset= searchResult.getOffset(); int length= searchResult.getLength(); TextChangeCompatibility.addTextEdit(manager.get(copy), name, new ReplaceEdit(offset, length, newName)); } return manager; }
@Override public RefactoringStatus checkFinalConditions(IProgressMonitor pm) throws CoreException { pm.beginTask("", 20); //$NON-NLS-1$ fChangeManager= new TextChangeManager(); RefactoringStatus result= new RefactoringStatus(); fSourceProvider.initialize(); boolean added= false; MultiTextEdit root= new MultiTextEdit(); CompilationUnitChange change= (CompilationUnitChange)fChangeManager.get(unit); change.setEdit(root); BodyDeclaration[] bodies= fTargetProvider.getAffectedBodyDeclarations(unit, new SubProgressMonitor(pm, 1)); fChangeManager.remove(unit); } else { root.addChild(inliner.getModifications());
final DynamicValidationRefactoringChange result= new DynamicValidationRefactoringChange(descriptor, RefactoringCoreMessages.RenameTypeProcessor_change_name); if (fChangeManager.containsChangesIn(fType.getCompilationUnit())) { TextChange textChange= fChangeManager.get(fType.getCompilationUnit()); if (textChange instanceof TextFileChange) { ((TextFileChange) textChange).setSaveMode(TextFileChange.FORCE_SAVE); result.addAll(fChangeManager.getAllChanges()); if (willRenameCU()) { IResource resource= fType.getCompilationUnit().getResource();
private IFile[] getAllFilesToModify() { List<ICompilationUnit> cus= new ArrayList<>(); cus.addAll(Arrays.asList(fTextChangeManager.getAllCompilationUnits())); return ResourceUtil.getFiles(cus.toArray(new ICompilationUnit[cus.size()])); }
public Change[] getAllChanges() { return fChangeManager.getAllChanges(); }
final void addDeclarationUpdate(TextChangeManager manager) throws CoreException { if (getDelegateUpdating()) { // create the delegate CompilationUnitRewrite rewrite= new CompilationUnitRewrite(getDeclaringCU()); rewrite.setResolveBindings(true); MethodDeclaration methodDeclaration= ASTNodeSearchUtil.getMethodDeclarationNode(getMethod(), rewrite.getRoot()); DelegateMethodCreator creator= new DelegateMethodCreator(); creator.setDeclaration(methodDeclaration); creator.setDeclareDeprecated(getDeprecateDelegates()); creator.setSourceRewrite(rewrite); creator.setCopy(true); creator.setNewElementName(getNewElementName()); creator.prepareDelegate(); creator.createEdit(); CompilationUnitChange cuChange= rewrite.createChange(); if (cuChange != null) { cuChange.setKeepPreviewEdits(true); manager.manage(getDeclaringCU(), cuChange); } } String editName= RefactoringCoreMessages.RenameMethodRefactoring_update_declaration; ISourceRange nameRange= getMethod().getNameRange(); ReplaceEdit replaceEdit= new ReplaceEdit(nameRange.getOffset(), nameRange.getLength(), getNewElementName()); addTextEdit(manager.get(getDeclaringCU()), editName, replaceEdit); }
private Change createReferenceUpdatingMoveChange(IProgressMonitor pm) throws JavaModelException { pm.beginTask("", 2 + (fUpdateQualifiedNames ? 1 : 0)); //$NON-NLS-1$ try { CompositeChange composite= new DynamicValidationStateChange(RefactoringCoreMessages.ReorgPolicy_move); composite.markAsSynthetic(); // XX workaround for bug 13558 // <workaround> if (fChangeManager == null) { fChangeManager= createChangeManager(new SubProgressMonitor(pm, 1), new RefactoringStatus()); // TODO: non-CU matches silently dropped RefactoringStatus status= Checks.validateModifiesFiles(getAllModifiedFiles(), null); if (status.hasFatalError()) fChangeManager= new TextChangeManager(); } // </workaround> composite.merge(new CompositeChange(RefactoringCoreMessages.MoveRefactoring_reorganize_elements, fChangeManager.getAllChanges())); Change fileMove= createSimpleMoveChange(new SubProgressMonitor(pm, 1)); if (fileMove instanceof CompositeChange) { composite.merge(((CompositeChange) fileMove)); } else { composite.add(fileMove); } return composite; } finally { pm.done(); } }
fChangeManager.clear(); fSetterMustReturnValue= analyzer.getSetterMustReturnValue(); if (result.hasFatalError()) { fChangeManager.clear(); return result; IFile[] filesToBeModified= ResourceUtil.getFiles(fChangeManager.getAllCompilationUnits()); result.merge(Checks.validateModifiesFiles(filesToBeModified, getValidationContext())); if (result.hasFatalError())