diff --git a/src/main/java/com/google/api/generator/gapic/composer/BUILD.bazel b/src/main/java/com/google/api/generator/gapic/composer/BUILD.bazel index f90d35bd99..a4500c029d 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/BUILD.bazel +++ b/src/main/java/com/google/api/generator/gapic/composer/BUILD.bazel @@ -15,8 +15,10 @@ java_library( deps = [ "//:service_config_java_proto", "//src/main/java/com/google/api/generator/engine/ast", + "//src/main/java/com/google/api/generator/engine/writer", "//src/main/java/com/google/api/generator/gapic:status_java_proto", "//src/main/java/com/google/api/generator/gapic/model", + "//src/main/java/com/google/api/generator/gapic/composer/samplecode", "//src/main/java/com/google/api/generator/gapic/utils", "@com_google_api_api_common//jar", "@com_google_api_gax_java//gax", diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposer.java index 45f625f32f..3cf805932f 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceSettingsClassComposer.java @@ -54,6 +54,7 @@ import com.google.api.generator.gapic.model.GapicClass.Kind; import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.Method; +import com.google.api.generator.gapic.model.Method.Stream; import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.common.base.Preconditions; @@ -101,7 +102,7 @@ public GapicClass generate(Service service, Map ignore) { ClassDefinition classDef = ClassDefinition.builder() .setPackageString(pakkage) - .setHeaderCommentStatements(createClassHeaderComments(service)) + .setHeaderCommentStatements(createClassHeaderComments(service, types.get(className))) .setAnnotations(createClassAnnotations()) .setScope(ScopeNode.PUBLIC) .setName(className) @@ -119,11 +120,20 @@ public GapicClass generate(Service service, Map ignore) { return GapicClass.create(kind, classDef); } - private static List createClassHeaderComments(Service service) { + private static List createClassHeaderComments( + Service service, TypeNode classType) { + // Pick the first pure unary rpc method, if no such method exists, then pick the first in the + // list. Optional methodOpt = - service.methods().isEmpty() ? Optional.empty() : Optional.of(service.methods().get(0)); + service.methods().isEmpty() + ? Optional.empty() + : Optional.of( + service.methods().stream() + .filter(m -> m.stream() == Stream.NONE && !m.hasLro() && !m.isPaged()) + .findFirst() + .orElse(service.methods().get(0))); return SettingsCommentComposer.createClassHeaderComments( - getClientClassName(service.name()), service.defaultHost(), methodOpt); + getClientClassName(service.name()), service.defaultHost(), methodOpt, classType); } private static List createClassAnnotations() { diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceStubSettingsClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceStubSettingsClassComposer.java index 0c471392b5..9fe65b37b6 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceStubSettingsClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceStubSettingsClassComposer.java @@ -78,6 +78,7 @@ import com.google.api.generator.gapic.model.GapicServiceConfig; import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.Method; +import com.google.api.generator.gapic.model.Method.Stream; import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.common.base.Preconditions; @@ -163,7 +164,7 @@ public GapicClass generate( ClassDefinition classDef = ClassDefinition.builder() .setPackageString(pakkage) - .setHeaderCommentStatements(createClassHeaderComments(service)) + .setHeaderCommentStatements(createClassHeaderComments(service, types.get(className))) .setAnnotations(createClassAnnotations()) .setScope(ScopeNode.PUBLIC) .setName(className) @@ -187,11 +188,20 @@ private static List createClassAnnotations() { .build()); } - private static List createClassHeaderComments(Service service) { + private static List createClassHeaderComments( + Service service, TypeNode classType) { + // Pick the first pure unary rpc method, if no such method exists, then pick the first in the + // list. Optional methodOpt = - service.methods().isEmpty() ? Optional.empty() : Optional.of(service.methods().get(0)); + service.methods().isEmpty() + ? Optional.empty() + : Optional.of( + service.methods().stream() + .filter(m -> m.stream() == Stream.NONE && !m.hasLro() && !m.isPaged()) + .findFirst() + .orElse(service.methods().get(0))); return SettingsCommentComposer.createClassHeaderComments( - String.format(STUB_PATTERN, service.name()), service.defaultHost(), methodOpt); + String.format(STUB_PATTERN, service.name()), service.defaultHost(), methodOpt, classType); } private static TypeNode createExtendsType(Service service, Map types) { diff --git a/src/main/java/com/google/api/generator/gapic/composer/SettingsCommentComposer.java b/src/main/java/com/google/api/generator/gapic/composer/SettingsCommentComposer.java index e47822c870..cc8cc94d15 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/SettingsCommentComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/SettingsCommentComposer.java @@ -17,6 +17,7 @@ import com.google.api.generator.engine.ast.CommentStatement; import com.google.api.generator.engine.ast.JavaDocComment; import com.google.api.generator.engine.ast.LineComment; +import com.google.api.generator.engine.ast.TypeNode; import com.google.api.generator.gapic.model.Method; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.common.base.Preconditions; @@ -28,6 +29,8 @@ class SettingsCommentComposer { private static final String COLON = ":"; + private static final String CLIENT_CLASS_NAME_PATTERN = "%sClient"; + private static final String STUB_PATTERN = "%sStub"; private static final String BUILDER_CLASS_DOC_PATTERN = "Builder for %s."; private static final String CALL_SETTINGS_METHOD_DOC_PATTERN = "Returns the object with the settings used for calls to %s."; @@ -102,7 +105,10 @@ static CommentStatement createCallSettingsBuilderGetterComment(String javaMethod } static List createClassHeaderComments( - String configuredClassName, String defaultHost, Optional methodOpt) { + String configuredClassName, + String defaultHost, + Optional methodOpt, + TypeNode classType) { // Split default address and port. int colonIndex = defaultHost.indexOf(COLON); Preconditions.checkState( @@ -127,12 +133,16 @@ static List createClassHeaderComments( .addParagraph(CLASS_HEADER_BUILDER_DESCRIPTION); if (methodOpt.isPresent()) { + String sampleCode = + SettingsSampleCodeComposer.composeSettingClassHeaderSampleCode( + methodOpt.get(), classType); javaDocCommentBuilder = - javaDocCommentBuilder.addParagraph( - String.format( - CLASS_HEADER_SAMPLE_CODE_PATTERN, - JavaStyle.toLowerCamelCase(methodOpt.get().name()))); - // TODO(summerji): Add sample code here. + javaDocCommentBuilder + .addParagraph( + String.format( + CLASS_HEADER_SAMPLE_CODE_PATTERN, + JavaStyle.toLowerCamelCase(methodOpt.get().name()))) + .addSampleCode(sampleCode); } return Arrays.asList( diff --git a/src/main/java/com/google/api/generator/gapic/composer/SettingsSampleCodeComposer.java b/src/main/java/com/google/api/generator/gapic/composer/SettingsSampleCodeComposer.java new file mode 100644 index 0000000000..8f07cf5a45 --- /dev/null +++ b/src/main/java/com/google/api/generator/gapic/composer/SettingsSampleCodeComposer.java @@ -0,0 +1,163 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.api.generator.gapic.composer; + +import com.google.api.generator.engine.ast.AssignmentExpr; +import com.google.api.generator.engine.ast.ConcreteReference; +import com.google.api.generator.engine.ast.Expr; +import com.google.api.generator.engine.ast.ExprStatement; +import com.google.api.generator.engine.ast.MethodInvocationExpr; +import com.google.api.generator.engine.ast.PrimitiveValue; +import com.google.api.generator.engine.ast.Statement; +import com.google.api.generator.engine.ast.TypeNode; +import com.google.api.generator.engine.ast.ValueExpr; +import com.google.api.generator.engine.ast.VaporReference; +import com.google.api.generator.engine.ast.Variable; +import com.google.api.generator.engine.ast.VariableExpr; +import com.google.api.generator.engine.writer.JavaWriterVisitor; +import com.google.api.generator.gapic.composer.samplecode.SampleCodeJavaFormatter; +import com.google.api.generator.gapic.model.Method; +import com.google.api.generator.gapic.utils.JavaStyle; +import java.time.Duration; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +public final class SettingsSampleCodeComposer { + // TODO(summerji): Add unit tests + + private static final String BUILDER_NAME_PATTERN = "%sBuilder"; + private static final String STUB = "Stub"; + private static final String EMPTY_STRING = ""; + + public static String composeSettingClassHeaderSampleCode(Method method, TypeNode classType) { + // Initialize services settingsBuilder with newBuilder() + // e.g. FoobarSettings.Builder foobarSettingsBuilder = FoobarSettings.newBuilder(); + String className = classType.reference().name(); + TypeNode builderType = + TypeNode.withReference( + VaporReference.builder() + .setEnclosingClassNames(classType.reference().name()) + .setName("Builder") + .setPakkage(classType.reference().pakkage()) + .build()); + Variable builderVar = + Variable.builder() + .setName(getClassSettingsBuilderName(className)) + .setType(builderType) + .build(); + VariableExpr localSettingsVarExpr = VariableExpr.withVariable(builderVar); + Expr settingsBuilderExpr = + MethodInvocationExpr.builder() + .setStaticReferenceType(classType) + .setMethodName("newBuilder") + .setReturnType(builderType) + .build(); + Expr initLocalSettingsExpr = + AssignmentExpr.builder() + .setVariableExpr(localSettingsVarExpr.toBuilder().setIsDecl(true).build()) + .setValueExpr(settingsBuilderExpr) + .build(); + + // Builder with set value method + // e.g foobarSettingBuilder.fooSetting().setRetrySettings( + // echoSettingsBuilder.echoSettings().getRetrySettings().toBuilder().setTotalTimeout(Duration.ofSeconds(30)).build()); + MethodInvocationExpr retrySettingsMethodExpr = + MethodInvocationExpr.builder() + .setExprReferenceExpr(localSettingsVarExpr) + .setMethodName(JavaStyle.toLowerCamelCase(String.format("%sSettings", method.name()))) + .setReturnType(method.outputType()) + .build(); + MethodInvocationExpr timeoutArExpr = + MethodInvocationExpr.builder() + .setStaticReferenceType( + TypeNode.withReference(ConcreteReference.withClazz(Duration.class))) + .setMethodName("ofSeconds") + .setArguments( + ValueExpr.withValue( + PrimitiveValue.builder().setType(TypeNode.INT).setValue("30").build())) + .build(); + MethodInvocationExpr timeoutBuilderMethodExpr = + MethodInvocationExpr.builder() + .setExprReferenceExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr(retrySettingsMethodExpr) + .setMethodName("getRetrySettings") + .build()) + .setMethodName("toBuilder") + .build()) + .setMethodName("setTotalTimeout") + .setArguments(Arrays.asList(timeoutArExpr)) + .build(); + MethodInvocationExpr retrySettingsArgExpr = + MethodInvocationExpr.builder() + .setExprReferenceExpr(timeoutBuilderMethodExpr) + .setMethodName("build") + .build(); + MethodInvocationExpr settingBuilderMethodExpr = + MethodInvocationExpr.builder() + .setExprReferenceExpr(retrySettingsMethodExpr) + .setMethodName("setRetrySettings") + .setArguments(Arrays.asList(retrySettingsArgExpr)) + .build(); + + // Initialize clientSetting with builder() method. + // e.g: FoobarSettings foobarSettings = foobarSettingsBuilder.build(); + VariableExpr settingsVarExpr = + VariableExpr.withVariable( + Variable.builder() + .setType(classType) + .setName(getServiceSettingsName(className)) + .build()); + AssignmentExpr settingBuildAssignmentExpr = + AssignmentExpr.builder() + .setVariableExpr(settingsVarExpr.toBuilder().setIsDecl(true).build()) + .setValueExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr(localSettingsVarExpr) + .setMethodName("build") + .setReturnType(classType) + .build()) + .build(); + + List statements = + Arrays.asList(initLocalSettingsExpr, settingBuilderMethodExpr, settingBuildAssignmentExpr) + .stream() + .map(e -> ExprStatement.withExpr(e)) + .collect(Collectors.toList()); + return SampleCodeJavaFormatter.format(writeStatements(statements)); + } + + private static String getServiceSettingsName(String className) { + return JavaStyle.toLowerCamelCase(className).replace(STUB, EMPTY_STRING); + } + + private static String getClassSettingsBuilderName(String className) { + return JavaStyle.toLowerCamelCase( + String.format(BUILDER_NAME_PATTERN, JavaStyle.toLowerCamelCase(className))) + .replace(STUB, EMPTY_STRING); + } + + // TODO(summerji): Refactor to use writeSampleCode method after PR#499 merged. + private static String writeStatements(List statements) { + JavaWriterVisitor visitor = new JavaWriterVisitor(); + for (Statement statement : statements) { + statement.accept(visitor); + } + return visitor.write(); + } +} diff --git a/src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel b/src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel index 5147770a96..d95a2dc2be 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel +++ b/src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel @@ -31,6 +31,7 @@ TEST_DEPS = [ "//src/main/java/com/google/api/generator/gapic/composer", "//src/test/java/com/google/api/generator/test/framework:asserts", "//src/test/java/com/google/api/generator/test/framework:utils", + "//src/main/java/com/google/api/generator/gapic/composer/samplecode", "//src/test/java/com/google/api/generator/testutils", "//src/main/java/com/google/api/generator/gapic/model", "//src/main/java/com/google/api/generator/gapic/protoparser", diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/EchoSettings.golden b/src/test/java/com/google/api/generator/gapic/composer/goldens/EchoSettings.golden index 076e0d772b..f5b7b86c32 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/goldens/EchoSettings.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/EchoSettings.golden @@ -39,6 +39,20 @@ import javax.annotation.Generated; * build() is called, the tree of builders is called to create the complete settings object. * *

For example, to set the total timeout of echo to 30 seconds: + * + *

{@code
+ * EchoSettings.Builder echoSettingsBuilder = EchoSettings.newBuilder();
+ * echoSettingsBuilder
+ *     .echoSettings()
+ *     .setRetrySettings(
+ *         echoSettingsBuilder
+ *             .echoSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * EchoSettings echoSettings = echoSettingsBuilder.build();
+ * }
*/ @Generated("by gapic-generator-java") public class EchoSettings extends ClientSettings { diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/EchoStubSettings.golden b/src/test/java/com/google/api/generator/gapic/composer/goldens/EchoStubSettings.golden index 1cf711874b..cd52c7c439 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/goldens/EchoStubSettings.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/EchoStubSettings.golden @@ -67,6 +67,20 @@ import org.threeten.bp.Duration; * build() is called, the tree of builders is called to create the complete settings object. * *

For example, to set the total timeout of echo to 30 seconds: + * + *

{@code
+ * EchoStubSettings.Builder echoSettingsBuilder = EchoStubSettings.newBuilder();
+ * echoSettingsBuilder
+ *     .echoSettings()
+ *     .setRetrySettings(
+ *         echoSettingsBuilder
+ *             .echoSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * EchoStubSettings echoSettings = echoSettingsBuilder.build();
+ * }
*/ @BetaApi @Generated("by gapic-generator-java") diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/LoggingServiceV2StubSettings.golden b/src/test/java/com/google/api/generator/gapic/composer/goldens/LoggingServiceV2StubSettings.golden index fe7cd63332..329fc273fc 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/goldens/LoggingServiceV2StubSettings.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/LoggingServiceV2StubSettings.golden @@ -64,6 +64,21 @@ import org.threeten.bp.Duration; * build() is called, the tree of builders is called to create the complete settings object. * *

For example, to set the total timeout of deleteLog to 30 seconds: + * + *

{@code
+ * LoggingServiceV2StubSettings.Builder loggingServiceV2SettingsBuilder =
+ *     LoggingServiceV2StubSettings.newBuilder();
+ * loggingServiceV2SettingsBuilder
+ *     .deleteLogSettings()
+ *     .setRetrySettings(
+ *         loggingServiceV2SettingsBuilder
+ *             .deleteLogSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * LoggingServiceV2StubSettings loggingServiceV2Settings = loggingServiceV2SettingsBuilder.build();
+ * }
*/ @BetaApi @Generated("by gapic-generator-java") diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/PublisherStubSettings.golden b/src/test/java/com/google/api/generator/gapic/composer/goldens/PublisherStubSettings.golden index fe73523fcd..efd6ed6fff 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/goldens/PublisherStubSettings.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/PublisherStubSettings.golden @@ -67,6 +67,20 @@ import org.threeten.bp.Duration; * build() is called, the tree of builders is called to create the complete settings object. * *

For example, to set the total timeout of createTopic to 30 seconds: + * + *

{@code
+ * PublisherStubSettings.Builder publisherSettingsBuilder = PublisherStubSettings.newBuilder();
+ * publisherSettingsBuilder
+ *     .createTopicSettings()
+ *     .setRetrySettings(
+ *         publisherSettingsBuilder
+ *             .createTopicSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * PublisherStubSettings publisherSettings = publisherSettingsBuilder.build();
+ * }
*/ @BetaApi @Generated("by gapic-generator-java") diff --git a/test/integration/goldens/asset/AssetServiceSettings.java b/test/integration/goldens/asset/AssetServiceSettings.java index 304d71696c..be010b730a 100644 --- a/test/integration/goldens/asset/AssetServiceSettings.java +++ b/test/integration/goldens/asset/AssetServiceSettings.java @@ -54,7 +54,21 @@ *

The builder of this class is recursive, so contained classes are themselves builders. When * build() is called, the tree of builders is called to create the complete settings object. * - *

For example, to set the total timeout of exportAssets to 30 seconds: + *

For example, to set the total timeout of batchGetAssetsHistory to 30 seconds: + * + *

{@code
+ * AssetServiceSettings.Builder assetServiceSettingsBuilder = AssetServiceSettings.newBuilder();
+ * assetServiceSettingsBuilder
+ *     .batchGetAssetsHistorySettings()
+ *     .setRetrySettings(
+ *         assetServiceSettingsBuilder
+ *             .batchGetAssetsHistorySettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * AssetServiceSettings assetServiceSettings = assetServiceSettingsBuilder.build();
+ * }
*/ @Generated("by gapic-generator-java") public class AssetServiceSettings extends ClientSettings { diff --git a/test/integration/goldens/asset/AssetServiceStubSettings.java b/test/integration/goldens/asset/AssetServiceStubSettings.java index bf1c0e2984..be7aac6632 100644 --- a/test/integration/goldens/asset/AssetServiceStubSettings.java +++ b/test/integration/goldens/asset/AssetServiceStubSettings.java @@ -89,7 +89,22 @@ *

The builder of this class is recursive, so contained classes are themselves builders. When * build() is called, the tree of builders is called to create the complete settings object. * - *

For example, to set the total timeout of exportAssets to 30 seconds: + *

For example, to set the total timeout of batchGetAssetsHistory to 30 seconds: + * + *

{@code
+ * AssetServiceStubSettings.Builder assetServiceSettingsBuilder =
+ *     AssetServiceStubSettings.newBuilder();
+ * assetServiceSettingsBuilder
+ *     .batchGetAssetsHistorySettings()
+ *     .setRetrySettings(
+ *         assetServiceSettingsBuilder
+ *             .batchGetAssetsHistorySettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * AssetServiceStubSettings assetServiceSettings = assetServiceSettingsBuilder.build();
+ * }
*/ @BetaApi @Generated("by gapic-generator-java") diff --git a/test/integration/goldens/logging/ConfigServiceV2Settings.java b/test/integration/goldens/logging/ConfigServiceV2Settings.java index 1ae26f5c78..f0de606305 100644 --- a/test/integration/goldens/logging/ConfigServiceV2Settings.java +++ b/test/integration/goldens/logging/ConfigServiceV2Settings.java @@ -53,7 +53,22 @@ *

The builder of this class is recursive, so contained classes are themselves builders. When * build() is called, the tree of builders is called to create the complete settings object. * - *

For example, to set the total timeout of listBuckets to 30 seconds: + *

For example, to set the total timeout of getBucket to 30 seconds: + * + *

{@code
+ * ConfigServiceV2Settings.Builder configServiceV2SettingsBuilder =
+ *     ConfigServiceV2Settings.newBuilder();
+ * configServiceV2SettingsBuilder
+ *     .getBucketSettings()
+ *     .setRetrySettings(
+ *         configServiceV2SettingsBuilder
+ *             .getBucketSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * ConfigServiceV2Settings configServiceV2Settings = configServiceV2SettingsBuilder.build();
+ * }
*/ @Generated("by gapic-generator-java") public class ConfigServiceV2Settings extends ClientSettings { diff --git a/test/integration/goldens/logging/ConfigServiceV2StubSettings.java b/test/integration/goldens/logging/ConfigServiceV2StubSettings.java index c51140e8fc..066f9e3d2c 100644 --- a/test/integration/goldens/logging/ConfigServiceV2StubSettings.java +++ b/test/integration/goldens/logging/ConfigServiceV2StubSettings.java @@ -90,7 +90,22 @@ *

The builder of this class is recursive, so contained classes are themselves builders. When * build() is called, the tree of builders is called to create the complete settings object. * - *

For example, to set the total timeout of listBuckets to 30 seconds: + *

For example, to set the total timeout of getBucket to 30 seconds: + * + *

{@code
+ * ConfigServiceV2StubSettings.Builder configServiceV2SettingsBuilder =
+ *     ConfigServiceV2StubSettings.newBuilder();
+ * configServiceV2SettingsBuilder
+ *     .getBucketSettings()
+ *     .setRetrySettings(
+ *         configServiceV2SettingsBuilder
+ *             .getBucketSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * ConfigServiceV2StubSettings configServiceV2Settings = configServiceV2SettingsBuilder.build();
+ * }
*/ @BetaApi @Generated("by gapic-generator-java") diff --git a/test/integration/goldens/logging/LoggingServiceV2Settings.java b/test/integration/goldens/logging/LoggingServiceV2Settings.java index 83dc356803..af749354e3 100644 --- a/test/integration/goldens/logging/LoggingServiceV2Settings.java +++ b/test/integration/goldens/logging/LoggingServiceV2Settings.java @@ -54,6 +54,21 @@ * build() is called, the tree of builders is called to create the complete settings object. * *

For example, to set the total timeout of deleteLog to 30 seconds: + * + *

{@code
+ * LoggingServiceV2Settings.Builder loggingServiceV2SettingsBuilder =
+ *     LoggingServiceV2Settings.newBuilder();
+ * loggingServiceV2SettingsBuilder
+ *     .deleteLogSettings()
+ *     .setRetrySettings(
+ *         loggingServiceV2SettingsBuilder
+ *             .deleteLogSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * LoggingServiceV2Settings loggingServiceV2Settings = loggingServiceV2SettingsBuilder.build();
+ * }
*/ @Generated("by gapic-generator-java") public class LoggingServiceV2Settings extends ClientSettings { diff --git a/test/integration/goldens/logging/LoggingServiceV2StubSettings.java b/test/integration/goldens/logging/LoggingServiceV2StubSettings.java index 7e6456b3d4..ae0e186fd6 100644 --- a/test/integration/goldens/logging/LoggingServiceV2StubSettings.java +++ b/test/integration/goldens/logging/LoggingServiceV2StubSettings.java @@ -80,6 +80,21 @@ * build() is called, the tree of builders is called to create the complete settings object. * *

For example, to set the total timeout of deleteLog to 30 seconds: + * + *

{@code
+ * LoggingServiceV2StubSettings.Builder loggingServiceV2SettingsBuilder =
+ *     LoggingServiceV2StubSettings.newBuilder();
+ * loggingServiceV2SettingsBuilder
+ *     .deleteLogSettings()
+ *     .setRetrySettings(
+ *         loggingServiceV2SettingsBuilder
+ *             .deleteLogSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * LoggingServiceV2StubSettings loggingServiceV2Settings = loggingServiceV2SettingsBuilder.build();
+ * }
*/ @BetaApi @Generated("by gapic-generator-java") diff --git a/test/integration/goldens/logging/MetricsServiceV2Settings.java b/test/integration/goldens/logging/MetricsServiceV2Settings.java index e9c0451fcb..c0b40697e9 100644 --- a/test/integration/goldens/logging/MetricsServiceV2Settings.java +++ b/test/integration/goldens/logging/MetricsServiceV2Settings.java @@ -51,7 +51,22 @@ *

The builder of this class is recursive, so contained classes are themselves builders. When * build() is called, the tree of builders is called to create the complete settings object. * - *

For example, to set the total timeout of listLogMetrics to 30 seconds: + *

For example, to set the total timeout of getLogMetric to 30 seconds: + * + *

{@code
+ * MetricsServiceV2Settings.Builder metricsServiceV2SettingsBuilder =
+ *     MetricsServiceV2Settings.newBuilder();
+ * metricsServiceV2SettingsBuilder
+ *     .getLogMetricSettings()
+ *     .setRetrySettings(
+ *         metricsServiceV2SettingsBuilder
+ *             .getLogMetricSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * MetricsServiceV2Settings metricsServiceV2Settings = metricsServiceV2SettingsBuilder.build();
+ * }
*/ @Generated("by gapic-generator-java") public class MetricsServiceV2Settings extends ClientSettings { diff --git a/test/integration/goldens/logging/MetricsServiceV2StubSettings.java b/test/integration/goldens/logging/MetricsServiceV2StubSettings.java index 2d0a8aedbc..139c3218f3 100644 --- a/test/integration/goldens/logging/MetricsServiceV2StubSettings.java +++ b/test/integration/goldens/logging/MetricsServiceV2StubSettings.java @@ -73,7 +73,22 @@ *

The builder of this class is recursive, so contained classes are themselves builders. When * build() is called, the tree of builders is called to create the complete settings object. * - *

For example, to set the total timeout of listLogMetrics to 30 seconds: + *

For example, to set the total timeout of getLogMetric to 30 seconds: + * + *

{@code
+ * MetricsServiceV2StubSettings.Builder metricsServiceV2SettingsBuilder =
+ *     MetricsServiceV2StubSettings.newBuilder();
+ * metricsServiceV2SettingsBuilder
+ *     .getLogMetricSettings()
+ *     .setRetrySettings(
+ *         metricsServiceV2SettingsBuilder
+ *             .getLogMetricSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * MetricsServiceV2StubSettings metricsServiceV2Settings = metricsServiceV2SettingsBuilder.build();
+ * }
*/ @BetaApi @Generated("by gapic-generator-java") diff --git a/test/integration/goldens/redis/CloudRedisSettings.java b/test/integration/goldens/redis/CloudRedisSettings.java index 4a33403427..f13b069810 100644 --- a/test/integration/goldens/redis/CloudRedisSettings.java +++ b/test/integration/goldens/redis/CloudRedisSettings.java @@ -53,7 +53,21 @@ *

The builder of this class is recursive, so contained classes are themselves builders. When * build() is called, the tree of builders is called to create the complete settings object. * - *

For example, to set the total timeout of listInstances to 30 seconds: + *

For example, to set the total timeout of getInstance to 30 seconds: + * + *

{@code
+ * CloudRedisSettings.Builder cloudRedisSettingsBuilder = CloudRedisSettings.newBuilder();
+ * cloudRedisSettingsBuilder
+ *     .getInstanceSettings()
+ *     .setRetrySettings(
+ *         cloudRedisSettingsBuilder
+ *             .getInstanceSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * CloudRedisSettings cloudRedisSettings = cloudRedisSettingsBuilder.build();
+ * }
*/ @Generated("by gapic-generator-java") public class CloudRedisSettings extends ClientSettings { diff --git a/test/integration/goldens/redis/CloudRedisStubSettings.java b/test/integration/goldens/redis/CloudRedisStubSettings.java index 5c4955ef25..c30e46e9d0 100644 --- a/test/integration/goldens/redis/CloudRedisStubSettings.java +++ b/test/integration/goldens/redis/CloudRedisStubSettings.java @@ -83,7 +83,21 @@ *

The builder of this class is recursive, so contained classes are themselves builders. When * build() is called, the tree of builders is called to create the complete settings object. * - *

For example, to set the total timeout of listInstances to 30 seconds: + *

For example, to set the total timeout of getInstance to 30 seconds: + * + *

{@code
+ * CloudRedisStubSettings.Builder cloudRedisSettingsBuilder = CloudRedisStubSettings.newBuilder();
+ * cloudRedisSettingsBuilder
+ *     .getInstanceSettings()
+ *     .setRetrySettings(
+ *         cloudRedisSettingsBuilder
+ *             .getInstanceSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setTotalTimeout(Duration.ofSeconds(30))
+ *             .build());
+ * CloudRedisStubSettings cloudRedisSettings = cloudRedisSettingsBuilder.build();
+ * }
*/ @BetaApi @Generated("by gapic-generator-java")