Interface BatchingDescriptor<ElementT,ElementResultT,RequestT,ResponseT> (2.51.0)

public interface BatchingDescriptor<ElementT,ElementResultT,RequestT,ResponseT>

An adapter that packs and unpacks the elements in and out of batch requests and responses.

This interface should be implemented by either a service specific client or autogenerated by gapic-generator.

Example implementation:


 class ListDescriptor implements BatchingDescriptor<String, String, List<String>, List<String>> {

   RequestBuilder<String, List<String>> newRequestBuilder(List<String> prototype) {
     return new RequestBuilder<String, List<String>>() {

       void add(String element) {
         list.add(element);
       }

       List<String> build() {
         return list.clone();
       }
     };
   }

   void splitResponse(List<String> callableResponse, List<SettableApiFuture<String>> batch) {
     for (int i = 0; i < batchresponse.size();="" i++)="" {="" batch.get(i).set(batchresponse.get(i);="" }="" }="" void="" splitexception(throwable="" throwable,="" list<settableapifuture<string>>="" batch)="" {="" for="" (settableapifuture<string>="" result="" :="" batch)="" {="" result.setexception(throwable);="" }="" }="" long="" countbytes(string="" element)="" {="" return="" element.length();="" }="" }="">

Type Parameters

Name Description
ElementT
ElementResultT
RequestT
ResponseT

Methods

countBytes(ElementT element)

public abstract long countBytes(ElementT element)

Returns the size of the passed element object in bytes.

Parameter
Name Description
element ElementT
Returns
Type Description
long

createEmptyResource()

public default BatchResource createEmptyResource()

Create an empty BatchResource.

Returns
Type Description
BatchResource

createResource(ElementT element)

public default BatchResource createResource(ElementT element)

Creates a new BatchResource with ElementT.

Parameter
Name Description
element ElementT
Returns
Type Description
BatchResource

newRequestBuilder(RequestT prototype)

public abstract BatchingRequestBuilder<ElementT,RequestT> newRequestBuilder(RequestT prototype)

Creates a new wrapper for the underlying request builder. It's used to pack the current batch request with elements.

Parameter
Name Description
prototype RequestT
Returns
Type Description
BatchingRequestBuilder<ElementT,RequestT>

splitException(Throwable throwable, List<BatchEntry<ElementT,ElementResultT>> batch)

public abstract void splitException(Throwable throwable, List<BatchEntry<ElementT,ElementResultT>> batch)

Unpacks the batch response error into individual element errors.

Parameters
Name Description
throwable Throwable
batch List<BatchEntry<ElementT,ElementResultT>>

splitResponse(ResponseT batchResponse, List<BatchEntry<ElementT,ElementResultT>> batch)

public abstract void splitResponse(ResponseT batchResponse, List<BatchEntry<ElementT,ElementResultT>> batch)

Unpacks the batch response into individual elements results.

Parameters
Name Description
batchResponse ResponseT
batch List<BatchEntry<ElementT,ElementResultT>>