protected Problem checkIfModificationPossible(Problem problem, CsmObject referencedObject) { fireProgressListenerStep(); try { for (CheckModificationHook hook : modificationHooks) { problem = hook.appendProblem(refactoring, problem, referencedObject); if (problem != null && problem.isFatal()) { return problem; } } } finally { fireProgressListenerStep(); } return problem; }
private Problem validation(int phase) { Problem result = null; for (EncapsulateFieldRefactoringPlugin ref : refactorings) { Problem lastresult = null; switch (phase) { case FAST_CHECK_PARAMETERS: lastresult = ref.fastCheckParameters(); break; case CHECK_PARAMETERS: lastresult = ref.preCheck(); result = chainProblems(result, lastresult); if (result != null && result.isFatal()) { return result; } lastresult = ref.checkParameters(); ref.addProgressListener(listener); break; } result = chainProblems(result, lastresult); if (result != null && result.isFatal()) { return result; } } return result; }
private static Problem chainProblems(Problem oldp, Problem newp) { if (oldp == null) { return newp; } else if (newp == null) { return oldp; } else if (newp.isFatal()) { newp.setNext(oldp); return newp; } else { // [TODO] performance Problem p = oldp; while (p.getNext() != null) { p = p.getNext(); } p.setNext(newp); return oldp; } }
private static void doRenameRefactoring(FormDataObject dao, String newName, TreePathHandle handle) throws IOException { if(handle==null){ //this would only happen if setName were called without the correct component being //selected some how... return; } FormEditorSupport fes = (FormEditorSupport)dao.getFormEditorSupport(); if (fes.isModified()) { fes.saveDocument(); } //ok, so we are now ready to actually setup our RenameRefactoring...we need the element TreePathHandle Lookup rnl = Lookups.singleton(handle); RefactoringSession renameSession = RefactoringSession.create("Change variable name");//NOI18N RenameRefactoring refactoring = new RenameRefactoring(rnl); Problem pre = refactoring.preCheck(); if(pre!=null&&pre.isFatal()){ Logger.getLogger("global").log(Level.WARNING, "There were problems trying to perform the refactoring."); } Problem p = null; if( (!(pre!=null&&pre.isFatal())) && !emptyOrWhite(newName) ){ refactoring.setNewName(newName); p = refactoring.prepare(renameSession); } if( (!(p!=null&&p.isFatal())) && !emptyOrWhite(newName) ){ renameSession.doRefactoring(true); } }