code: public static Collection<URI> list(URI uri) {
      boolean isRepo = URIBuilder.REPO_SCHEME.equals(uri.getScheme());
      Preconditions.checkArgument(isRepo, "Not a repository URI: " + uri);
      DatasetRepository repo = Registration
          .open(URI.create(uri.getRawSchemeSpecificPart()));
  
      // build a URI for each dataset name
      URI repoUri = repo.getUri();
      List<URI> datasets = Lists.newArrayList();
      for (String namespace : repo.namespaces()) {
        for (String dataset : repo.datasets(namespace)) {
          datasets.add(new URIBuilder(repoUri, namespace, dataset).build());
        }
      }
  
      return datasets;
    }
docs: List the {@link Dataset} URIs in the repository identified by the URI.
  <p>
  URI formats are defined by {@code Dataset} implementations. The repository
  URIs you pass to this method must begin with {@code repo:}. For example, to
  list the {@code Dataset} URIs for the Hive repository, provide the URI
  {@code repo:hive}.
  
  @param uri a {@code DatasetRepository} URI
  @return the URIs present in the {@code DatasetRepository}
  @throws NullPointerException if {@code uri} is null
  @throws IllegalArgumentException if {@code uri} is not a repository URI