@Override
    public boolean check() {
      final String[] pieces = RelativePathCalculator.split(myAfterName);
      final VirtualFile afterFileParent;
      try {
        afterFileParent = makeSureParentPathExists(pieces);
      }
      catch (IOException e) {
        setErrorMessage(cantCreateFileMessage(myAfterName, e));
        return false;
      }
      if (afterFileParent == null) {
        setErrorMessage(fileNotFoundMessage(myAfterName));
        return false;
      }
      final VirtualFile beforeFile = getMappedFile(myBeforeName);
      if (!checkExistsAndValid(beforeFile, myBeforeName)) {
        return false;
      }
      myMovedFiles.put(beforeFile, new MovedFileData(afterFileParent, beforeFile, myPatch.getAfterFileName()));
      addPatch(myPatch, beforeFile);
      return true;
    }
@Override
    public boolean check()