[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-03 UTC."],[[["\u003cp\u003eThis document provides documentation for the \u003ccode\u003eBatchingDescriptor\u003c/code\u003e interface in the Google API Client Library for Java, specifically within the \u003ccode\u003ecom.google.api.gax.batching\u003c/code\u003e package, with the latest version being 2.63.1.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eBatchingDescriptor\u003c/code\u003e interface is an adapter that handles packing elements into batch requests and unpacking them from batch responses, typically implemented by a service-specific client or generated by the gapic-generator.\u003c/p\u003e\n"],["\u003cp\u003eThe interface includes methods like \u003ccode\u003ecountBytes\u003c/code\u003e to determine element size, \u003ccode\u003ecreateEmptyResource\u003c/code\u003e and \u003ccode\u003ecreateResource\u003c/code\u003e to manage \u003ccode\u003eBatchResource\u003c/code\u003e instances, and \u003ccode\u003enewRequestBuilder\u003c/code\u003e to create request builders.\u003c/p\u003e\n"],["\u003cp\u003eIt also has the methods \u003ccode\u003esplitResponse\u003c/code\u003e and \u003ccode\u003esplitException\u003c/code\u003e which are essential for managing the results of batch requests and handling potential errors, respectively, by unpacking the overall response or error into individual element results or errors.\u003c/p\u003e\n"],["\u003cp\u003eThe documentation has a history of versions for this interface, with multiple documented versions available going as far back as version 2.7.1.\u003c/p\u003e\n"]]],[],null,["# Interface BatchingDescriptor<ElementT,ElementResultT,RequestT,ResponseT> (2.69.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.69.0 (latest)](/java/docs/reference/gax/latest/com.google.api.gax.batching.BatchingDescriptor)\n- [2.68.2](/java/docs/reference/gax/2.68.2/com.google.api.gax.batching.BatchingDescriptor)\n- [2.67.0](/java/docs/reference/gax/2.67.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.66.0](/java/docs/reference/gax/2.66.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.65.0](/java/docs/reference/gax/2.65.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.63.1](/java/docs/reference/gax/2.63.1/com.google.api.gax.batching.BatchingDescriptor)\n- [2.62.0](/java/docs/reference/gax/2.62.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.61.0](/java/docs/reference/gax/2.61.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.60.0](/java/docs/reference/gax/2.60.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.59.1](/java/docs/reference/gax/2.59.1/com.google.api.gax.batching.BatchingDescriptor)\n- [2.58.0](/java/docs/reference/gax/2.58.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.57.0](/java/docs/reference/gax/2.57.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.55.0](/java/docs/reference/gax/2.55.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.54.1](/java/docs/reference/gax/2.54.1/com.google.api.gax.batching.BatchingDescriptor)\n- [2.53.0](/java/docs/reference/gax/2.53.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.52.0](/java/docs/reference/gax/2.52.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.51.0](/java/docs/reference/gax/2.51.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.50.0](/java/docs/reference/gax/2.50.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.49.0](/java/docs/reference/gax/2.49.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.48.1](/java/docs/reference/gax/2.48.1/com.google.api.gax.batching.BatchingDescriptor)\n- [2.47.0](/java/docs/reference/gax/2.47.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.46.1](/java/docs/reference/gax/2.46.1/com.google.api.gax.batching.BatchingDescriptor)\n- [2.45.0](/java/docs/reference/gax/2.45.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.43.0](/java/docs/reference/gax/2.43.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.42.0](/java/docs/reference/gax/2.42.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.41.0](/java/docs/reference/gax/2.41.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.39.0](/java/docs/reference/gax/2.39.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.38.0](/java/docs/reference/gax/2.38.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.37.0](/java/docs/reference/gax/2.37.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.36.0](/java/docs/reference/gax/2.36.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.35.0](/java/docs/reference/gax/2.35.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.34.1](/java/docs/reference/gax/2.34.1/com.google.api.gax.batching.BatchingDescriptor)\n- [2.33.0](/java/docs/reference/gax/2.33.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.32.1](/java/docs/reference/gax/2.32.1/com.google.api.gax.batching.BatchingDescriptor)\n- [2.31.1](/java/docs/reference/gax/2.31.1/com.google.api.gax.batching.BatchingDescriptor)\n- [2.30.1](/java/docs/reference/gax/2.30.1/com.google.api.gax.batching.BatchingDescriptor)\n- [2.24.0](/java/docs/reference/gax/2.24.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.23.3](/java/docs/reference/gax/2.23.3/com.google.api.gax.batching.BatchingDescriptor)\n- [2.22.0](/java/docs/reference/gax/2.22.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.21.0](/java/docs/reference/gax/2.21.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.20.1](/java/docs/reference/gax/2.20.1/com.google.api.gax.batching.BatchingDescriptor)\n- [2.19.6](/java/docs/reference/gax/2.19.6/com.google.api.gax.batching.BatchingDescriptor)\n- [2.18.7](/java/docs/reference/gax/2.18.7/com.google.api.gax.batching.BatchingDescriptor)\n- [2.17.0](/java/docs/reference/gax/2.17.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.16.0](/java/docs/reference/gax/2.16.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.15.0](/java/docs/reference/gax/2.15.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.14.0](/java/docs/reference/gax/2.14.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.13.0](/java/docs/reference/gax/2.13.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.12.2](/java/docs/reference/gax/2.12.2/com.google.api.gax.batching.BatchingDescriptor)\n- [2.11.0](/java/docs/reference/gax/2.11.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.10.0](/java/docs/reference/gax/2.10.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.9.0](/java/docs/reference/gax/2.9.0/com.google.api.gax.batching.BatchingDescriptor)\n- [2.8.1](/java/docs/reference/gax/2.8.1/com.google.api.gax.batching.BatchingDescriptor)\n- [2.7.1](/java/docs/reference/gax/2.7.1/com.google.api.gax.batching.BatchingDescriptor) \n\n public interface BatchingDescriptor\u003cElementT,ElementResultT,RequestT,ResponseT\u003e\n\nAn adapter that packs and unpacks the elements in and out of batch requests and responses.\n\nThis interface should be implemented by either a service specific client or autogenerated by\ngapic-generator.\n\nExample implementation: \n\n\n class ListDescriptor implements BatchingDescriptor\u003cString, String, List\u003cString\u003e, List\u003cString\u003e\u003e {\n\n RequestBuilder\u003cString, List\u003cString\u003e\u003e newRequestBuilder(List\u003cString\u003e prototype) {\n return new RequestBuilder\u003cString, List\u003cString\u003e\u003e() {\n\n void add(String element) {\n list.add(element);\n }\n\n List\u003cString\u003e build() {\n return list.clone();\n }\n };\n }\n\n void splitResponse(List\u003cString\u003e callableResponse, List\u003cSettableApiFuture\u003cString\u003e\u003e batch) {\n for (int i = 0; i \u003c batchresponse.size();=\"\" i++)=\"\" {=\"\" batch.get(i).set(batchresponse.get(i);=\"\" }=\"\" }=\"\" void=\"\" splitexception(throwable=\"\" throwable,=\"\" list\u003csettableapifuture\u003cstring\u003e\u003e=\"\" batch)=\"\" {=\"\" for=\"\" (settableapifuture\u003cstring\u003e=\"\" result=\"\" :=\"\" batch)=\"\" {=\"\" result.setexception(throwable);=\"\" }=\"\" }=\"\" long=\"\" countbytes(string=\"\" element)=\"\" {=\"\" return=\"\" element.length();=\"\" }=\"\" }=\"\"\u003e\n\nMethods\n-------\n\n### countBytes(ElementT element)\n\n public abstract long countBytes(ElementT element)\n\nReturns the size of the passed element object in bytes.\n\n### createEmptyResource()\n\n public default BatchResource createEmptyResource()\n\nCreate an empty [BatchResource](/java/docs/reference/gax/latest/com.google.api.gax.batching.BatchResource).\n\n### createResource(ElementT element)\n\n public default BatchResource createResource(ElementT element)\n\nCreates a new [BatchResource](/java/docs/reference/gax/latest/com.google.api.gax.batching.BatchResource) with ElementT.\n\n### newRequestBuilder(RequestT prototype)\n\n public abstract BatchingRequestBuilder\u003cElementT,RequestT\u003e newRequestBuilder(RequestT prototype)\n\nCreates a new wrapper for the underlying request builder. It's used to pack the current batch\nrequest with elements.\n\n### splitException(Throwable throwable, List\\\u003cBatchEntry\\\u003cElementT,ElementResultT\\\u003e\\\u003e batch)\n\n public abstract void splitException(Throwable throwable, List\u003cBatchEntry\u003cElementT,ElementResultT\u003e\u003e batch)\n\nUnpacks the batch response error into individual element errors.\n\n### splitResponse(ResponseT batchResponse, List\\\u003cBatchEntry\\\u003cElementT,ElementResultT\\\u003e\\\u003e batch)\n\n public abstract void splitResponse(ResponseT batchResponse, List\u003cBatchEntry\u003cElementT,ElementResultT\u003e\u003e batch)\n\nUnpacks the batch response into individual elements results."]]