private Result fetchResource()

in zetasql-toolkit-bigquery/src/main/java/com/google/zetasql/toolkit/catalog/bigquery/BigQueryService.java [117:138]


  private <T> Result<T> fetchResource(
      String projectId,
      String reference,
      Function<BigQueryReference, T> fetcher,
      Map<String, T> cache) {

    try {
      BigQueryReference parsedReference = BigQueryReference.from(projectId, reference);
      T fetchedResource =
          cache.computeIfAbsent(
              parsedReference.getFullName(), key -> fetcher.apply(parsedReference));
      return fetchedResource == null
          ? Result.failure(new BigQueryResourceNotFound(parsedReference.getFullName()))
          : Result.success(fetchedResource);
    } catch (InvalidBigQueryReference err) {
      return Result.failure(err);
    } catch (BigQueryException err) {
      String message = String.format("Failed to fetch BigQuery resource: %s", reference);
      BigQueryAPIError wrapperError = new BigQueryAPIError(message, err);
      return Result.failure(wrapperError);
    }
  }