Skip to content

Commit 19c1d18

Browse files
committed
chore: Pre-DIREGAPIC Refactoring googleapis#1
This is as minimal of a PR that I could make stuch that: 1) It compiles and tests run single composer plus minimal 2) All the key changes are present (abstract/grpc class, comment composer, class names, golden files move) I had to add a few quite ugly and artificial constructs: fake `ClassComposer` under `composer` package which simply extends `composer.common.Composer` to void changing the rest of the classes put back static methods in `ClassNames` and `StubCommentComposer` and `TestProtoLoaderUtil` (for the same reasons as above). All of those chagnes are marked with `// TODO: remove after Pre-DIREGAPIC refactoring is fully merged` statement.
1 parent 2318136 commit 19c1d18

24 files changed

+814
-288
lines changed

src/main/java/com/google/api/generator/gapic/composer/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ java_library(
1818
"//src/main/java/com/google/api/generator/engine/writer",
1919
"//src/main/java/com/google/api/generator/gapic:status_java_proto",
2020
"//src/main/java/com/google/api/generator/gapic/composer/comment",
21+
"//src/main/java/com/google/api/generator/gapic/composer/common",
2122
"//src/main/java/com/google/api/generator/gapic/composer/defaultvalue",
23+
"//src/main/java/com/google/api/generator/gapic/composer/grpc",
2224
"//src/main/java/com/google/api/generator/gapic/composer/resourcename",
2325
"//src/main/java/com/google/api/generator/gapic/composer/samplecode",
2426
"//src/main/java/com/google/api/generator/gapic/composer/store",

src/main/java/com/google/api/generator/gapic/composer/ClassComposer.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,5 @@
1414

1515
package com.google.api.generator.gapic.composer;
1616

17-
import com.google.api.generator.gapic.model.GapicClass;
18-
import com.google.api.generator.gapic.model.GapicContext;
19-
import com.google.api.generator.gapic.model.Service;
20-
21-
public interface ClassComposer {
22-
GapicClass generate(GapicContext context, Service serivce);
23-
}
17+
public interface ClassComposer
18+
extends com.google.api.generator.gapic.composer.common.ClassComposer {}

src/main/java/com/google/api/generator/gapic/composer/Composer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import com.google.api.generator.engine.ast.ClassDefinition;
1818
import com.google.api.generator.engine.ast.ScopeNode;
1919
import com.google.api.generator.gapic.composer.comment.CommentComposer;
20+
import com.google.api.generator.gapic.composer.grpc.ServiceSettingsClassComposer;
2021
import com.google.api.generator.gapic.composer.resourcename.ResourceNameHelperClassComposer;
2122
import com.google.api.generator.gapic.model.GapicClass;
2223
import com.google.api.generator.gapic.model.GapicClass.Kind;

src/main/java/com/google/api/generator/gapic/composer/ServiceStubSettingsClassComposer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -985,7 +985,7 @@ private static List<MethodDefinition> createDefaultHelperAndGetterMethods(
985985
javaMethods.add(
986986
MethodDefinition.builder()
987987
.setHeaderCommentStatements(
988-
SettingsCommentComposer.DEFAULT_GRPC_TRANSPORT_PROVIDER_BUILDER_METHOD_COMMENT)
988+
SettingsCommentComposer.DEFAULT_TRANSPORT_PROVIDER_BUILDER_METHOD_COMMENT)
989989
.setScope(ScopeNode.PUBLIC)
990990
.setIsStatic(true)
991991
.setReturnType(returnType)

src/main/java/com/google/api/generator/gapic/composer/comment/SettingsCommentComposer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public class SettingsCommentComposer {
6767
public static final CommentStatement DEFAULT_CREDENTIALS_PROVIDER_BUILDER_METHOD_COMMENT =
6868
toSimpleComment("Returns a builder for the default credentials for this service.");
6969

70-
public static final CommentStatement DEFAULT_GRPC_TRANSPORT_PROVIDER_BUILDER_METHOD_COMMENT =
70+
public static final CommentStatement DEFAULT_TRANSPORT_PROVIDER_BUILDER_METHOD_COMMENT =
7171
toSimpleComment("Returns a builder for the default ChannelProvider for this service.");
7272

7373
public static final CommentStatement NEW_BUILDER_METHOD_COMMENT =

src/main/java/com/google/api/generator/gapic/composer/comment/StubCommentComposer.java

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,44 +22,69 @@
2222
public class StubCommentComposer {
2323
private static final String STUB_CLASS_HEADER_SUMMARY_PATTERN =
2424
"Base stub class for the %s service API.";
25-
private static final String GRPC_CALLABLE_FACTORY_CLASS_HEADER_SUMMARY_PATTERN =
26-
"gRPC callable factory implementation for the %s service API.";
27-
private static final String GRPC_STUB_CLASS_HEADER_SUMMARY_PATTERN =
28-
"gRPC stub implementation for the %s service API.";
25+
private static final String TRANSPORT_CALLABLE_FACTORY_CLASS_HEADER_SUMMARY_PATTERN =
26+
"%s callable factory implementation for the %s service API.";
27+
private static final String TRANSPORT_STUB_CLASS_HEADER_SUMMARY_PATTERN =
28+
"%s stub implementation for the %s service API.";
2929

3030
private static final String ADVANCED_USAGE_DESCRIPTION = "This class is for advanced usage.";
3131
private static final String ADVANCED_USAGE_API_REFLECTION_DESCRIPTION =
3232
"This class is for advanced usage and reflects the underlying API directly.";
3333

34+
// TODO: remove after Pre-DIREGAPIC refactoring is fully merged
35+
private static final StubCommentComposer GRPC_INSTANCE = new StubCommentComposer("gRPC");
36+
37+
private final String transportPrefix;
38+
39+
public StubCommentComposer(String transportPrefix) {
40+
this.transportPrefix = transportPrefix;
41+
}
42+
43+
// TODO: remove after Pre-DIREGAPIC refactoring is fully merged
3444
public static List<CommentStatement> createGrpcServiceStubClassHeaderComments(
3545
String serviceName, boolean isDeprecated) {
46+
return GRPC_INSTANCE.createTransportServiceStubClassHeaderComments(serviceName, isDeprecated);
47+
}
48+
49+
public List<CommentStatement> createTransportServiceStubClassHeaderComments(
50+
String serviceName, boolean isDeprecated) {
3651
JavaDocComment.Builder javaDocBuilder = JavaDocComment.builder();
3752
if (isDeprecated) {
3853
javaDocBuilder = javaDocBuilder.setDeprecated(CommentComposer.DEPRECATED_CLASS_STRING);
3954
}
40-
4155
return Arrays.asList(
4256
CommentComposer.AUTO_GENERATED_CLASS_COMMENT,
4357
CommentStatement.withComment(
4458
javaDocBuilder
45-
.addComment(String.format(GRPC_STUB_CLASS_HEADER_SUMMARY_PATTERN, serviceName))
59+
.addComment(
60+
String.format(
61+
TRANSPORT_STUB_CLASS_HEADER_SUMMARY_PATTERN, transportPrefix, serviceName))
4662
.addParagraph(ADVANCED_USAGE_API_REFLECTION_DESCRIPTION)
4763
.build()));
4864
}
4965

66+
// TODO: remove after Pre-DIREGAPIC refactoring is fully merged
5067
public static List<CommentStatement> createGrpcServiceCallableFactoryClassHeaderComments(
5168
String serviceName, boolean isDeprecated) {
69+
return GRPC_INSTANCE.createTransportServiceCallableFactoryClassHeaderComments(
70+
serviceName, isDeprecated);
71+
}
72+
73+
public List<CommentStatement> createTransportServiceCallableFactoryClassHeaderComments(
74+
String serviceName, boolean isDeprecated) {
5275
JavaDocComment.Builder javaDocBuilder = JavaDocComment.builder();
5376
if (isDeprecated) {
5477
javaDocBuilder = javaDocBuilder.setDeprecated(CommentComposer.DEPRECATED_CLASS_STRING);
5578
}
56-
5779
return Arrays.asList(
5880
CommentComposer.AUTO_GENERATED_CLASS_COMMENT,
5981
CommentStatement.withComment(
6082
javaDocBuilder
6183
.addComment(
62-
String.format(GRPC_CALLABLE_FACTORY_CLASS_HEADER_SUMMARY_PATTERN, serviceName))
84+
String.format(
85+
TRANSPORT_CALLABLE_FACTORY_CLASS_HEADER_SUMMARY_PATTERN,
86+
transportPrefix,
87+
serviceName))
6388
.addParagraph(ADVANCED_USAGE_DESCRIPTION)
6489
.build()));
6590
}

0 commit comments

Comments
 (0)