@Override public RefactoringStatus checkInitialConditions(IProgressMonitor pm) throws CoreException { try { pm.beginTask("", 4); // $NON-NLS-1$ RefactoringStatus result = new RefactoringStatus(); // prepare AST utils = new ExtractUtils(unit); unitNode = utils.getUnitNode(); pm.worked(1); // check selection result.merge(checkSelection(new SubProgressMonitor(pm, 3))); if (result.hasFatalError()) { return result; } // prepare parts result.merge(initializeParameters()); initializeOccurrences(); // done return result; } finally { pm.done(); } }