BigtableDataGrpcClient implements BigtableDataClient { @Override public List<FlatRow> readFlatRowsList(ReadRowsRequest request) { if (shouldOverrideAppProfile(request.getAppProfileId())) { request = request.toBuilder().setAppProfileId(clientDefaultAppProfileId).build(); } return FLAT_ROW_LIST_TRANSFORMER.apply( createStreamingListener(request, readRowsAsync, request.getTableName()) .getBlockingResult()); } BigtableDataGrpcClient(
      Channel channel,
      ScheduledExecutorService retryExecutorService,
      BigtableOptions bigtableOptions); @Override void setCallOptionsFactory(CallOptionsFactory callOptionsFactory); @Override MutateRowResponse mutateRow(MutateRowRequest request); @Override ListenableFuture<MutateRowResponse> mutateRowAsync(MutateRowRequest request); @Override List<MutateRowsResponse> mutateRows(MutateRowsRequest request); @Override ListenableFuture<List<MutateRowsResponse>> mutateRowsAsync(MutateRowsRequest request); @Override CheckAndMutateRowResponse checkAndMutateRow(CheckAndMutateRowRequest request); @Override ListenableFuture<CheckAndMutateRowResponse> checkAndMutateRowAsync(
      CheckAndMutateRowRequest request); @Override ReadModifyWriteRowResponse readModifyWriteRow(ReadModifyWriteRowRequest request); @Override ListenableFuture<ReadModifyWriteRowResponse> readModifyWriteRowAsync(
      ReadModifyWriteRowRequest request); @Override List<SampleRowKeysResponse> sampleRowKeys(SampleRowKeysRequest request); @Override ListenableFuture<List<SampleRowKeysResponse>> sampleRowKeysAsync(
      SampleRowKeysRequest request); @Override ListenableFuture<List<Row>> readRowsAsync(ReadRowsRequest request); @Override ListenableFuture<List<FlatRow>> readFlatRowsAsync(ReadRowsRequest request); @Override List<FlatRow> readFlatRowsList(ReadRowsRequest request); @Override ResultScanner<Row> readRows(ReadRowsRequest request); @Override ResultScanner<FlatRow> readFlatRows(ReadRowsRequest request); @Override ScanHandler readFlatRows(ReadRowsRequest request, StreamObserver<FlatRow> observer); @VisibleForTesting
  static final Predicate<MutateRowRequest> IS_RETRYABLE_MUTATION; }
@Test public void testListReadRows() { ReadRowsRequest.Builder requestBuilder = ReadRowsRequest.newBuilder().setTableName(TABLE_NAME); requestBuilder.getRowsBuilder().addRowKeys(ByteString.EMPTY); setResponse(ReadRowsResponse.getDefaultInstance()); defaultClient.readFlatRowsList(requestBuilder.build()); verifyRequestCalled(requestBuilder.build()); }