@Override
    public boolean move(PsiFile psiFile,
                        PsiDirectory moveDestination,
                        Map<PsiElement, PsiElement> oldToNewElementsMapping,
                        List<? super PsiFile> movedFiles,
                        RefactoringElementListener listener) {
      if (moveDestination.equals(psiFile.getContainingDirectory())) {
        return false;
      }

      MoveFileHandler.forElement(psiFile).prepareMovedFile(psiFile, moveDestination, oldToNewElementsMapping);

      PsiFile moving = moveDestination.findFile(psiFile.getName());
      if (moving == null) {
        MoveFilesOrDirectoriesUtil.doMoveFile(psiFile, moveDestination);
      }
      moving = moveDestination.findFile(psiFile.getName());
      movedFiles.add(moving);
      listener.elementMoved(psiFile);
      return true;
    }
@Override
    public boolean move(PsiFile psiFile,
                        PsiDirectory moveDestination,
                        Map<PsiElement, PsiElement> oldToNewElementsMapping,
                        List<? super PsiFile> movedFiles,
                        RefactoringElementListener listener)