6767import java .io .IOException ;
6868import java .util .ArrayList ;
6969import java .util .Arrays ;
70+ import java .util .Collections ;
7071import java .util .List ;
7172import java .util .Optional ;
7273import java .util .function .BiFunction ;
@@ -104,7 +105,7 @@ public GapicClass generate(GapicContext ignored, Service service) {
104105 .setPackageString (pakkage )
105106 .setHeaderCommentStatements (
106107 createClassHeaderComments (service , typeStore .get (className )))
107- .setAnnotations (createClassAnnotations (service . pakkage () ))
108+ .setAnnotations (createClassAnnotations (service ))
108109 .setScope (ScopeNode .PUBLIC )
109110 .setName (className )
110111 .setExtendsType (
@@ -143,16 +144,22 @@ private static List<CommentStatement> createClassHeaderComments(
143144 return SettingsCommentComposer .createClassHeaderComments (
144145 ClassNames .getServiceClientClassName (service ),
145146 service .defaultHost (),
147+ service .isDeprecated (),
146148 methodNameOpt ,
147149 sampleCodeOpt ,
148150 classType );
149151 }
150152
151- private static List <AnnotationNode > createClassAnnotations (String pakkage ) {
153+ private static List <AnnotationNode > createClassAnnotations (Service service ) {
152154 List <AnnotationNode > annotations = new ArrayList <>();
153- if (!PackageChecker .isGaApi (pakkage )) {
155+ if (!PackageChecker .isGaApi (service . pakkage () )) {
154156 annotations .add (AnnotationNode .withType (FIXED_TYPESTORE .get ("BetaApi" )));
155157 }
158+
159+ if (service .isDeprecated ()) {
160+ annotations .add (AnnotationNode .withType (TypeNode .DEPRECATED ));
161+ }
162+
156163 annotations .add (
157164 AnnotationNode .builder ()
158165 .setType (FIXED_TYPESTORE .get ("Generated" ))
@@ -194,18 +201,16 @@ private static MethodDefinition createConstructorMethod(Service service, TypeSto
194201 .build ();
195202 }
196203
204+ // TODO(miraleung): Consider merging this with createNestedBuilderSettingsGetterMethods.
197205 private static List <MethodDefinition > createSettingsGetterMethods (
198206 Service service , TypeStore typeStore ) {
199207 TypeNode stubSettingsType = typeStore .get (ClassNames .getServiceStubSettingsClassName (service ));
200- BiFunction <TypeNode , String , MethodDefinition > methodMakerFn =
201- (retType , methodName ) ->
208+ BiFunction <TypeNode , String , MethodDefinition . Builder > methodMakerFn =
209+ (retType , javaMethodName ) ->
202210 MethodDefinition .builder ()
203- .setHeaderCommentStatements (
204- SettingsCommentComposer .createCallSettingsGetterComment (
205- getMethodNameFromSettingsVarName (methodName )))
206211 .setScope (ScopeNode .PUBLIC )
207212 .setReturnType (retType )
208- .setName (methodName )
213+ .setName (javaMethodName )
209214 .setReturnExpr (
210215 MethodInvocationExpr .builder ()
211216 .setExprReferenceExpr (
@@ -217,22 +222,41 @@ private static List<MethodDefinition> createSettingsGetterMethods(
217222 .setReturnType (FIXED_TYPESTORE .get ("StubSettings" ))
218223 .build ())
219224 .build ())
220- .setMethodName (methodName )
225+ .setMethodName (javaMethodName )
221226 .setReturnType (retType )
222- .build ())
223- .build ();
227+ .build ());
224228 List <MethodDefinition > javaMethods = new ArrayList <>();
225229 for (Method protoMethod : service .methods ()) {
226230 String javaStyleName = JavaStyle .toLowerCamelCase (protoMethod .name ());
231+ String javaMethodName =
232+ String .format ("%sSettings" , JavaStyle .toLowerCamelCase (protoMethod .name ()));
233+ MethodDefinition .Builder methodBuilder =
234+ methodMakerFn .apply (getCallSettingsType (protoMethod , typeStore ), javaMethodName );
227235 javaMethods .add (
228- methodMakerFn .apply (
229- getCallSettingsType (protoMethod , typeStore ),
230- String .format ("%sSettings" , javaStyleName )));
236+ methodBuilder
237+ .setHeaderCommentStatements (
238+ SettingsCommentComposer .createCallSettingsGetterComment (
239+ getMethodNameFromSettingsVarName (javaMethodName ), protoMethod .isDeprecated ()))
240+ .setAnnotations (
241+ protoMethod .isDeprecated ()
242+ ? Arrays .asList (AnnotationNode .withType (TypeNode .DEPRECATED ))
243+ : Collections .emptyList ())
244+ .build ());
231245 if (protoMethod .hasLro ()) {
246+ javaMethodName = String .format ("%sOperationSettings" , javaStyleName );
247+ methodBuilder =
248+ methodMakerFn .apply (getOperationCallSettingsType (protoMethod ), javaMethodName );
232249 javaMethods .add (
233- methodMakerFn .apply (
234- getOperationCallSettingsType (protoMethod ),
235- String .format ("%sOperationSettings" , javaStyleName )));
250+ methodBuilder
251+ .setHeaderCommentStatements (
252+ SettingsCommentComposer .createCallSettingsGetterComment (
253+ getMethodNameFromSettingsVarName (javaMethodName ),
254+ protoMethod .isDeprecated ()))
255+ .setAnnotations (
256+ protoMethod .isDeprecated ()
257+ ? Arrays .asList (AnnotationNode .withType (TypeNode .DEPRECATED ))
258+ : Collections .emptyList ())
259+ .build ());
236260 }
237261 }
238262 return javaMethods ;
@@ -635,12 +659,9 @@ private static MethodDefinition createNestedBuilderApplyToAllUnaryMethod(
635659
636660 private static List <MethodDefinition > createNestedBuilderSettingsGetterMethods (
637661 Service service , TypeStore typeStore ) {
638- BiFunction <TypeNode , String , MethodDefinition > methodMakerFn =
662+ BiFunction <TypeNode , String , MethodDefinition . Builder > methodMakerFn =
639663 (retType , methodName ) ->
640664 MethodDefinition .builder ()
641- .setHeaderCommentStatements (
642- SettingsCommentComposer .createCallSettingsBuilderGetterComment (
643- getMethodNameFromSettingsVarName (methodName )))
644665 .setScope (ScopeNode .PUBLIC )
645666 .setReturnType (retType )
646667 .setName (methodName )
@@ -652,20 +673,39 @@ private static List<MethodDefinition> createNestedBuilderSettingsGetterMethods(
652673 .build ())
653674 .setMethodName (methodName )
654675 .setReturnType (retType )
655- .build ())
656- .build ();
676+ .build ());
657677 List <MethodDefinition > javaMethods = new ArrayList <>();
658678 for (Method protoMethod : service .methods ()) {
659679 String javaStyleName = JavaStyle .toLowerCamelCase (protoMethod .name ());
680+ String javaMethodName = String .format ("%sSettings" , javaStyleName );
681+ MethodDefinition .Builder methodBuilder =
682+ methodMakerFn .apply (getCallSettingsBuilderType (protoMethod , typeStore ), javaMethodName );
660683 javaMethods .add (
661- methodMakerFn .apply (
662- getCallSettingsBuilderType (protoMethod , typeStore ),
663- String .format ("%sSettings" , javaStyleName )));
684+ methodBuilder
685+ .setHeaderCommentStatements (
686+ SettingsCommentComposer .createCallSettingsBuilderGetterComment (
687+ getMethodNameFromSettingsVarName (javaMethodName ), protoMethod .isDeprecated ()))
688+ .setAnnotations (
689+ protoMethod .isDeprecated ()
690+ ? Arrays .asList (AnnotationNode .withType (TypeNode .DEPRECATED ))
691+ : Collections .emptyList ())
692+ .build ());
693+
664694 if (protoMethod .hasLro ()) {
695+ javaMethodName = String .format ("%sOperationSettings" , javaStyleName );
696+ methodBuilder =
697+ methodMakerFn .apply (getOperationCallSettingsBuilderType (protoMethod ), javaMethodName );
665698 javaMethods .add (
666- methodMakerFn .apply (
667- getOperationCallSettingsBuilderType (protoMethod ),
668- String .format ("%sOperationSettings" , javaStyleName )));
699+ methodBuilder
700+ .setHeaderCommentStatements (
701+ SettingsCommentComposer .createCallSettingsBuilderGetterComment (
702+ getMethodNameFromSettingsVarName (javaMethodName ),
703+ protoMethod .isDeprecated ()))
704+ .setAnnotations (
705+ protoMethod .isDeprecated ()
706+ ? Arrays .asList (AnnotationNode .withType (TypeNode .DEPRECATED ))
707+ : Collections .emptyList ())
708+ .build ());
669709 }
670710 }
671711 return javaMethods ;
0 commit comments