/** * Create rename refactoring session. * * @param settings rename settings * @return the rename refactoring session * @throws CoreException when RenameSupport can't be created * @throws RefactoringException when Java element was not found */ @POST @Path("rename/create") @Produces("application/json") @Consumes("application/json") public RenameRefactoringSession createRenameRefactoring(CreateRenameRefactoring settings) throws CoreException, RefactoringException { IJavaProject javaProject = model.getJavaProject(settings.getProjectPath()); IJavaElement elementToRename; ICompilationUnit cu = null; switch (settings.getType()) { case COMPILATION_UNIT: elementToRename = javaProject.findType(settings.getPath()).getCompilationUnit(); break; case PACKAGE: elementToRename = javaProject.findPackageFragment(new org.eclipse.core.runtime.Path(settings.getPath())); break; case JAVA_ELEMENT: cu = javaProject.findType(settings.getPath()).getCompilationUnit(); elementToRename = getSelectionElement(cu, settings.getOffset()); break; default: elementToRename = null; } if (elementToRename == null) { throw new RefactoringException("Can't find java element to rename."); } return manager.createRenameRefactoring( elementToRename, cu, settings.getOffset(), settings.isRefactorLightweight()); }