private boolean processSubFiles(@Nullable("null means all in the project") VirtualFile file, final @NotNull Processor<? super VirtualFile> processor) {
    if (file == null) {
      for (VirtualFile virtualFile : ProjectRootManager.getInstance(myProject).getContentRoots()) {
        if (!processSubFiles(virtualFile, processor)) return false;
      }
      return true;
    }

    return VirtualFileVisitor.CONTINUE == VfsUtilCore.visitChildrenRecursively(file, new VirtualFileVisitor<Void>() {
      @Override
      public boolean visitFile(final @NotNull VirtualFile file) {
        return processor.process(file);
      }
    });
  }
private boolean processSubFiles(@Nullable("null means all in the project") VirtualFile file, final @NotNull Processor<? super VirtualFile> processor)