3636import com .google .api .gax .rpc .CallableFactory ;
3737import com .google .api .gax .rpc .ClientContext ;
3838import com .google .api .gax .rpc .ClientStreamingCallable ;
39- import com .google .api .gax .rpc .EmptyRequestParamsExtractor ;
4039import com .google .api .gax .rpc .LongRunningClient ;
4140import com .google .api .gax .rpc .OperationCallSettings ;
4241import com .google .api .gax .rpc .OperationCallable ;
4342import com .google .api .gax .rpc .PagedCallSettings ;
44- import com .google .api .gax .rpc .RequestParamsExtractor ;
45- import com .google .api .gax .rpc .RequestUrlParamsEncoder ;
4643import com .google .api .gax .rpc .ServerStreamingCallable ;
47- import com .google .api .gax .rpc .SimpleCallSettings ;
4844import com .google .api .gax .rpc .StreamingCallSettings ;
4945import com .google .api .gax .rpc .UnaryCallSettings ;
5046import com .google .api .gax .rpc .UnaryCallSettingsTyped ;
@@ -62,12 +58,13 @@ private GrpcCallableFactory() {}
6258 private static <RequestT , ResponseT > UnaryCallable <RequestT , ResponseT > createBaseUnaryCallable (
6359 GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
6460 UnaryCallSettings callSettings ,
65- ClientContext clientContext ,
66- RequestParamsExtractor <RequestT > paramsExtractor ) {
61+ ClientContext clientContext ) {
6762 UnaryCallable <RequestT , ResponseT > callable =
68- new GrpcDirectCallable <>(
69- grpcCallSettings .getMethodDescriptor (),
70- new RequestUrlParamsEncoder <>(paramsExtractor , false ));
63+ new GrpcDirectCallable <>(grpcCallSettings .getMethodDescriptor ());
64+ if (grpcCallSettings .getParamsExtractor () != null ) {
65+ callable =
66+ new GrpcUnaryRequestParamCallable <>(callable , grpcCallSettings .getParamsExtractor ());
67+ }
7168 callable = new GrpcExceptionCallable <>(callable , callSettings .getRetryableCodes ());
7269 callable = callableFactory .withRetry (callable , callSettings , clientContext );
7370 return callable ;
@@ -77,38 +74,14 @@ private static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createBa
7774 * Create a callable object with grpc-specific functionality. Designed for use by generated code.
7875 *
7976 * @param grpcCallSettings the gRPC call settings
80- * @param simpleCallSettings {@link SimpleCallSettings} to configure the method-level settings
81- * with.
82- * @param clientContext {@link ClientContext} to use to connect to the service.
83- * @return {@link UnaryCallable} callable object.
84- */
85- public static <RequestT , ResponseT > UnaryCallable <RequestT , ResponseT > createUnaryCallable (
86- GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
87- SimpleCallSettings <RequestT , ResponseT > simpleCallSettings ,
88- ClientContext clientContext ) {
89- return createUnaryCallable (
90- grpcCallSettings ,
91- simpleCallSettings ,
92- clientContext ,
93- EmptyRequestParamsExtractor .<RequestT >of ());
94- }
95-
96- /**
97- * Create a callable object with grpc-specific functionality. Designed for use by generated code.
98- *
99- * @param grpcCallSettings the gRPC call settings
100- * @param paramsExtractor request message parameters extractor, which will be used to populate
101- * routing headers
10277 */
10378 @ BetaApi
10479 public static <RequestT , ResponseT > UnaryCallable <RequestT , ResponseT > createUnaryCallable (
10580 GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
10681 UnaryCallSettingsTyped <RequestT , ResponseT > simpleCallSettings ,
107- ClientContext clientContext ,
108- RequestParamsExtractor <RequestT > paramsExtractor ) {
82+ ClientContext clientContext ) {
10983 UnaryCallable <RequestT , ResponseT > callable =
110- createBaseUnaryCallable (
111- grpcCallSettings , simpleCallSettings , clientContext , paramsExtractor );
84+ createBaseUnaryCallable (grpcCallSettings , simpleCallSettings , clientContext );
11285 return callable .withDefaultCallContext (clientContext .getDefaultCallContext ());
11386 }
11487
@@ -126,33 +99,8 @@ UnaryCallable<RequestT, ResponseT> createUnpagedCallable(
12699 GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
127100 PagedCallSettings <RequestT , ResponseT , PagedListResponseT > pagedCallSettings ,
128101 ClientContext clientContext ) {
129- return createUnpagedCallable (
130- grpcCallSettings ,
131- pagedCallSettings ,
132- clientContext ,
133- EmptyRequestParamsExtractor .<RequestT >of ());
134- }
135-
136- /**
137- * Create a callable object that represents a simple call to a paged API method. Designed for use
138- * by generated code.
139- *
140- * @param grpcCallSettings the gRPC call settings
141- * @param pagedCallSettings {@link PagedCallSettings} to configure the method-level settings with.
142- * @param clientContext {@link ClientContext} to use to connect to the service.
143- * @param paramsExtractor request message parameters extractor, which will be used to populate
144- * routing headers
145- * @return {@link UnaryCallable} callable object.
146- */
147- public static <RequestT , ResponseT , PagedListResponseT >
148- UnaryCallable <RequestT , ResponseT > createUnpagedCallable (
149- GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
150- PagedCallSettings <RequestT , ResponseT , PagedListResponseT > pagedCallSettings ,
151- ClientContext clientContext ,
152- RequestParamsExtractor <RequestT > paramsExtractor ) {
153102 UnaryCallable <RequestT , ResponseT > callable =
154- createBaseUnaryCallable (
155- grpcCallSettings , pagedCallSettings , clientContext , paramsExtractor );
103+ createBaseUnaryCallable (grpcCallSettings , pagedCallSettings , clientContext );
156104 return callable .withDefaultCallContext (clientContext .getDefaultCallContext ());
157105 }
158106
@@ -170,33 +118,8 @@ UnaryCallable<RequestT, PagedListResponseT> createPagedCallable(
170118 GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
171119 PagedCallSettings <RequestT , ResponseT , PagedListResponseT > pagedCallSettings ,
172120 ClientContext clientContext ) {
173- return createPagedCallable (
174- grpcCallSettings ,
175- pagedCallSettings ,
176- clientContext ,
177- EmptyRequestParamsExtractor .<RequestT >of ());
178- }
179-
180- /**
181- * Create a paged callable object that represents a paged API method. Designed for use by
182- * generated code.
183- *
184- * @param grpcCallSettings the gRPC call settings
185- * @param pagedCallSettings {@link PagedCallSettings} to configure the paged settings with.
186- * @param clientContext {@link ClientContext} to use to connect to the service.
187- * @param paramsExtractor request message parameters extractor, which will be used to populate
188- * routing headers
189- * @return {@link UnaryCallable} callable object.
190- */
191- public static <RequestT , ResponseT , PagedListResponseT >
192- UnaryCallable <RequestT , PagedListResponseT > createPagedCallable (
193- GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
194- PagedCallSettings <RequestT , ResponseT , PagedListResponseT > pagedCallSettings ,
195- ClientContext clientContext ,
196- RequestParamsExtractor <RequestT > paramsExtractor ) {
197121 UnaryCallable <RequestT , ResponseT > innerCallable =
198- createBaseUnaryCallable (
199- grpcCallSettings , pagedCallSettings , clientContext , paramsExtractor );
122+ createBaseUnaryCallable (grpcCallSettings , pagedCallSettings , clientContext );
200123 UnaryCallable <RequestT , PagedListResponseT > pagedCallable =
201124 callableFactory .asPagedVariant (innerCallable , pagedCallSettings );
202125 return pagedCallable .withDefaultCallContext (clientContext .getDefaultCallContext ());
@@ -216,33 +139,8 @@ public static <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createBat
216139 GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
217140 BatchingCallSettings <RequestT , ResponseT > batchingCallSettings ,
218141 ClientContext clientContext ) {
219- return createBatchingCallable (
220- grpcCallSettings ,
221- batchingCallSettings ,
222- clientContext ,
223- EmptyRequestParamsExtractor .<RequestT >of ());
224- }
225-
226- /**
227- * Create a callable object that represents a batching API method. Designed for use by generated
228- * code.
229- *
230- * @param grpcCallSettings the gRPC call settings
231- * @param batchingCallSettings {@link BatchingCallSettings} to configure the batching related
232- * settings with.
233- * @param clientContext {@link ClientContext} to use to connect to the service.
234- * @param paramsExtractor request message parameters extractor, which will be used to populate
235- * routing headers
236- * @return {@link UnaryCallable} callable object.
237- */
238- public static <RequestT , ResponseT > UnaryCallable <RequestT , ResponseT > createBatchingCallable (
239- GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
240- BatchingCallSettings <RequestT , ResponseT > batchingCallSettings ,
241- ClientContext clientContext ,
242- RequestParamsExtractor <RequestT > paramsExtractor ) {
243142 UnaryCallable <RequestT , ResponseT > callable =
244- createBaseUnaryCallable (
245- grpcCallSettings , batchingCallSettings , clientContext , paramsExtractor );
143+ createBaseUnaryCallable (grpcCallSettings , batchingCallSettings , clientContext );
246144 callable = callableFactory .withBatching (callable , batchingCallSettings , clientContext );
247145 return callable .withDefaultCallContext (clientContext .getDefaultCallContext ());
248146 }
@@ -264,40 +162,9 @@ OperationCallable<RequestT, ResponseT, MetadataT> createOperationCallable(
264162 OperationCallSettings <RequestT , ResponseT , MetadataT > operationCallSettings ,
265163 ClientContext clientContext ,
266164 OperationsStub operationsStub ) {
267- return createOperationCallable (
268- grpcCallSettings ,
269- operationCallSettings ,
270- clientContext ,
271- operationsStub ,
272- EmptyRequestParamsExtractor .<RequestT >of ());
273- }
274-
275- /**
276- * Creates a callable object that represents a long-running operation. Designed for use by
277- * generated code.
278- *
279- * @param grpcCallSettings the gRPC call settings
280- * @param operationCallSettings {@link OperationCallSettings} to configure the method-level
281- * settings with.
282- * @param clientContext {@link ClientContext} to use to connect to the service.
283- * @param operationsStub {@link OperationsStub} to use to poll for updates on the Operation.
284- * @param paramsExtractor request message parameters extractor, which will be used to populate
285- * routing headers
286- * @return {@link com.google.api.gax.rpc.OperationCallable} callable object.
287- */
288- public static <RequestT , ResponseT , MetadataT >
289- OperationCallable <RequestT , ResponseT , MetadataT > createOperationCallable (
290- GrpcCallSettings <RequestT , Operation > grpcCallSettings ,
291- OperationCallSettings <RequestT , ResponseT , MetadataT > operationCallSettings ,
292- ClientContext clientContext ,
293- OperationsStub operationsStub ,
294- RequestParamsExtractor <RequestT > paramsExtractor ) {
295165 UnaryCallable <RequestT , Operation > initialGrpcCallable =
296166 createBaseUnaryCallable (
297- grpcCallSettings ,
298- operationCallSettings .getInitialCallSettings (),
299- clientContext ,
300- paramsExtractor );
167+ grpcCallSettings , operationCallSettings .getInitialCallSettings (), clientContext );
301168 UnaryCallable <RequestT , OperationSnapshot > initialCallable =
302169 new GrpcOperationSnapshotCallable <>(initialGrpcCallable );
303170 LongRunningClient longRunningClient = new GrpcLongRunningClient (operationsStub );
@@ -336,43 +203,20 @@ BidiStreamingCallable<RequestT, ResponseT> createBidiStreamingCallable(
336203 * @param streamingCallSettings {@link StreamingCallSettings} to configure the method-level
337204 * settings with.
338205 * @param clientContext {@link ClientContext} to use to connect to the service.
339- * @return {@link ServerStreamingCallable} callable object.
340206 */
341207 @ BetaApi
342208 public static <RequestT , ResponseT >
343209 ServerStreamingCallable <RequestT , ResponseT > createServerStreamingCallable (
344210 GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
345211 StreamingCallSettings <RequestT , ResponseT > streamingCallSettings ,
346212 ClientContext clientContext ) {
347- return createServerStreamingCallable (
348- grpcCallSettings ,
349- streamingCallSettings ,
350- clientContext ,
351- EmptyRequestParamsExtractor .<RequestT >of ());
352- }
353-
354- /**
355- * Create a server-streaming callable with grpc-specific functionality. Designed for use by
356- * generated code.
357- *
358- * @param grpcCallSettings the gRPC call settings
359- * @param streamingCallSettings {@link StreamingCallSettings} to configure the method-level
360- * settings with.
361- * @param clientContext {@link ClientContext} to use to connect to the service.
362- * @param paramsExtractor request message parameters extractor, which will be used to populate
363- * routing headers
364- */
365- @ BetaApi
366- public static <RequestT , ResponseT >
367- ServerStreamingCallable <RequestT , ResponseT > createServerStreamingCallable (
368- GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
369- StreamingCallSettings <RequestT , ResponseT > streamingCallSettings ,
370- ClientContext clientContext ,
371- RequestParamsExtractor <RequestT > paramsExtractor ) {
372213 ServerStreamingCallable <RequestT , ResponseT > callable =
373- new GrpcDirectServerStreamingCallable <>(
374- grpcCallSettings .getMethodDescriptor (),
375- new RequestUrlParamsEncoder <>(paramsExtractor , false ));
214+ new GrpcDirectServerStreamingCallable <>(grpcCallSettings .getMethodDescriptor ());
215+ if (grpcCallSettings .getParamsExtractor () != null ) {
216+ callable =
217+ new GrpcServerStreamingRequestParamCallable <>(
218+ callable , grpcCallSettings .getParamsExtractor ());
219+ }
376220 return callable .withDefaultCallContext (clientContext .getDefaultCallContext ());
377221 }
378222
0 commit comments