1515 */
1616package com .google .ads .googleads .lib ;
1717
18- import com .google .ads .googleads .lib .ExceptionTransformingCallable ;
19- import com .google .ads .googleads .lib .ExceptionTransformingCallable .ExceptionTransformation ;
20- import com .google .ads .googleads .lib .GoogleAdsExceptionTransformation ;
18+ import com .google .ads .googleads .lib .callables .ExceptionTransformation ;
19+ import com .google .ads .googleads .lib .callables .ExceptionTransformingServerStreamingCallable ;
20+ import com .google .ads .googleads .lib .callables .ExceptionTransformingUnaryCallable ;
21+ import com .google .ads .googleads .lib .callables .GoogleAdsExceptionTransformation ;
2122import com .google .api .gax .grpc .GrpcCallSettings ;
2223import com .google .api .gax .grpc .GrpcCallableFactory ;
2324import com .google .api .gax .grpc .GrpcStubCallableFactory ;
3738import com .google .longrunning .Operation ;
3839import com .google .longrunning .stub .OperationsStub ;
3940
41+ /**
42+ * Defines the factory used to create instances for all Google Ads services.
43+ *
44+ * <p>Used in place of the default generated code to override the exceptions generated to throw
45+ * GoogleAdsException instead of ApiException.
46+ */
4047public class GrpcGoogleAdsCallableFactory implements GrpcStubCallableFactory {
4148
42- private static final ExceptionTransformation googleAdsExceptionTransformation = new GoogleAdsExceptionTransformation ();
49+ private static final ExceptionTransformation googleAdsExceptionTransformation =
50+ new GoogleAdsExceptionTransformation ();
4351
44- public static <RequestT , ResponseT > UnaryCallable <RequestT , ResponseT > createBaseUnaryCallable (GrpcCallSettings <RequestT , ResponseT > grpcCallSettings , UnaryCallSettings <?, ?> callSettings , ClientContext clientContext ) {
45- UnaryCallable <RequestT , ResponseT > callable = GrpcCallableFactory .createBaseUnaryCallable (grpcCallSettings , callSettings , clientContext );
46- return new ExceptionTransformingCallable <>(callable , googleAdsExceptionTransformation );
52+ public static <RequestT , ResponseT > UnaryCallable <RequestT , ResponseT > createBaseUnaryCallable (
53+ GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
54+ UnaryCallSettings <?, ?> callSettings ,
55+ ClientContext clientContext ) {
56+ UnaryCallable <RequestT , ResponseT > callable =
57+ GrpcCallableFactory .createBaseUnaryCallable (grpcCallSettings , callSettings , clientContext );
58+ return new ExceptionTransformingUnaryCallable <>(callable , googleAdsExceptionTransformation );
4759 }
4860
61+ @ Override
4962 public <RequestT , ResponseT > UnaryCallable <RequestT , ResponseT > createUnaryCallable (
5063 GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
5164 UnaryCallSettings <RequestT , ResponseT > callSettings ,
5265 ClientContext clientContext ) {
53- UnaryCallable <RequestT , ResponseT > callable = createBaseUnaryCallable (grpcCallSettings , callSettings , clientContext );
66+ UnaryCallable <RequestT , ResponseT > callable =
67+ createBaseUnaryCallable (grpcCallSettings , callSettings , clientContext );
5468 return callable .withDefaultCallContext (clientContext .getDefaultCallContext ());
5569 }
5670
71+ @ Override
5772 public <RequestT , ResponseT , PagedListResponseT >
5873 UnaryCallable <RequestT , PagedListResponseT > createPagedCallable (
5974 GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
6075 PagedCallSettings <RequestT , ResponseT , PagedListResponseT > pagedCallSettings ,
6176 ClientContext clientContext ) {
62- UnaryCallable <RequestT , ResponseT > innerCallable = createBaseUnaryCallable (grpcCallSettings , pagedCallSettings , clientContext );
63- UnaryCallable <RequestT , PagedListResponseT > pagedCallable = Callables .paged (innerCallable , pagedCallSettings );
77+ UnaryCallable <RequestT , ResponseT > innerCallable =
78+ createBaseUnaryCallable (grpcCallSettings , pagedCallSettings , clientContext );
79+ UnaryCallable <RequestT , PagedListResponseT > pagedCallable =
80+ Callables .paged (innerCallable , pagedCallSettings );
6481 return pagedCallable .withDefaultCallContext (clientContext .getDefaultCallContext ());
6582 }
6683
84+ @ Override
6785 public <RequestT , ResponseT > UnaryCallable <RequestT , ResponseT > createBatchingCallable (
6886 GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
6987 BatchingCallSettings <RequestT , ResponseT > batchingCallSettings ,
7088 ClientContext clientContext ) {
71- UnaryCallable <RequestT , ResponseT > callable = createBaseUnaryCallable (grpcCallSettings , batchingCallSettings , clientContext );
89+ UnaryCallable <RequestT , ResponseT > callable =
90+ createBaseUnaryCallable (grpcCallSettings , batchingCallSettings , clientContext );
7291 callable = Callables .batching (callable , batchingCallSettings , clientContext );
7392 return callable .withDefaultCallContext (clientContext .getDefaultCallContext ());
7493 }
7594
95+ @ Override
7696 public <RequestT , ResponseT , MetadataT >
7797 OperationCallable <RequestT , ResponseT , MetadataT > createOperationCallable (
7898 GrpcCallSettings <RequestT , Operation > grpcCallSettings ,
@@ -83,6 +103,7 @@ OperationCallable<RequestT, ResponseT, MetadataT> createOperationCallable(
83103 grpcCallSettings , operationCallSettings , clientContext , operationsStub );
84104 }
85105
106+ @ Override
86107 public <RequestT , ResponseT >
87108 BidiStreamingCallable <RequestT , ResponseT > createBidiStreamingCallable (
88109 GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
@@ -92,15 +113,20 @@ BidiStreamingCallable<RequestT, ResponseT> createBidiStreamingCallable(
92113 grpcCallSettings , streamingCallSettings , clientContext );
93114 }
94115
116+ @ Override
95117 public <RequestT , ResponseT >
96118 ServerStreamingCallable <RequestT , ResponseT > createServerStreamingCallable (
97119 GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
98120 ServerStreamingCallSettings <RequestT , ResponseT > streamingCallSettings ,
99121 ClientContext clientContext ) {
100- return GrpcCallableFactory .createServerStreamingCallable (
101- grpcCallSettings , streamingCallSettings , clientContext );
122+ ServerStreamingCallable <RequestT , ResponseT > defaultCallable =
123+ GrpcCallableFactory .createServerStreamingCallable (
124+ grpcCallSettings , streamingCallSettings , clientContext );
125+ return new ExceptionTransformingServerStreamingCallable (
126+ defaultCallable , new GoogleAdsExceptionTransformation ());
102127 }
103128
129+ @ Override
104130 public <RequestT , ResponseT >
105131 ClientStreamingCallable <RequestT , ResponseT > createClientStreamingCallable (
106132 GrpcCallSettings <RequestT , ResponseT > grpcCallSettings ,
0 commit comments