@Override
  public boolean isAccepted(@NotNull VirtualFile rootCandidate, @NotNull final ProgressIndicator progressIndicator) {
    if (isJarDirectory()) {
      if (!rootCandidate.isDirectory() || !rootCandidate.isInLocalFileSystem()) {
        return false;
      }
      for (VirtualFile child : rootCandidate.getChildren()) {
        if (!child.isDirectory() && FileTypeRegistry.getInstance().isFileOfType(child, ArchiveFileType.INSTANCE)) {
          final VirtualFile jarRoot = JarFileSystem.getInstance().getJarRootForLocalFile(child);
          if (jarRoot != null && containsFileOfType(jarRoot, progressIndicator)) {
            return true;
          }
        }
      }
      return false;
    }
    else {
      return containsFileOfType(rootCandidate, progressIndicator);
    }
  }
@Override
  public boolean isAccepted(@NotNull VirtualFile rootCandidate, @NotNull final ProgressIndicator progressIndicator)