diff --git a/src/main/java/com/google/api/generator/gapic/composer/ClassNames.java b/src/main/java/com/google/api/generator/gapic/composer/ClassNames.java new file mode 100644 index 0000000000..8952119964 --- /dev/null +++ b/src/main/java/com/google/api/generator/gapic/composer/ClassNames.java @@ -0,0 +1,63 @@ +// 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.gapic.model.Service; + +/** Provides Gapic class names. */ +public class ClassNames { + // Using constants since many of these class names are used often. + private static final String MOCK_SERVICE_CLASS_NAME_PATTERN = "Mock%s"; + private static final String SERVICE_CLIENT_CLASS_NAME_PATTERN = "%sClient"; + private static final String SERVICE_SETTINGS_CLASS_NAME_PATTERN = "%sSettings"; + private static final String SERVICE_STUB_SETTINGS_CLASS_NAME_PATTERN = "%sStubSettings"; + private static final String SERVICE_STUB_CLASS_NAME_PATTERN = "%sStub"; + private static final String GRPC_SERVICE_STUB_CLASS_NAME_PATTERN = "Grpc%sStub"; + private static final String GRPC_SERVICE_CALLABLE_FACTORY_CLASS_NAME_PATTERN = + "Grpc%sCallableFactory"; + private static final String MOCK_SERVICE_IMPL_CLASS_NAME_PATTERN = "Mock%sImpl"; + + protected static String getServiceClientClassName(Service service) { + return String.format(SERVICE_CLIENT_CLASS_NAME_PATTERN, service.overriddenName()); + } + + protected static String getServiceSettingsClassName(Service service) { + return String.format(SERVICE_SETTINGS_CLASS_NAME_PATTERN, service.overriddenName()); + } + + protected static String getMockServiceClassName(Service service) { + return String.format(MOCK_SERVICE_CLASS_NAME_PATTERN, service.name()); + } + + protected static String getMockServiceImplClassName(Service service) { + return String.format(MOCK_SERVICE_IMPL_CLASS_NAME_PATTERN, service.name()); + } + + protected static String getServiceStubSettingsClassName(Service service) { + return String.format(SERVICE_STUB_SETTINGS_CLASS_NAME_PATTERN, service.name()); + } + + protected static String getServiceStubClassName(Service service) { + return String.format(SERVICE_STUB_CLASS_NAME_PATTERN, service.name()); + } + + protected static String getGrpcServiceCallableFactoryClassName(Service service) { + return String.format(GRPC_SERVICE_CALLABLE_FACTORY_CLASS_NAME_PATTERN, service.name()); + } + + protected static String getGrpcServiceStubClassName(Service service) { + return String.format(GRPC_SERVICE_STUB_CLASS_NAME_PATTERN, service.name()); + } +} diff --git a/src/main/java/com/google/api/generator/gapic/composer/ClientLibraryPackageInfoComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ClientLibraryPackageInfoComposer.java index 32f0c5b0f2..4cf054f178 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ClientLibraryPackageInfoComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ClientLibraryPackageInfoComposer.java @@ -36,7 +36,6 @@ public class ClientLibraryPackageInfoComposer { private static final String PACKAGE_INFO_DESCRIPTION = "The interfaces provided are listed below, along with usage samples."; - private static final String CLIENT_PATTERN = "%sClient"; private static final String PACKAGE_INFO_TITLE_PATTERN = "A client to %s"; private static final String SAMPLE_CODE_HEADER_PATTERN = "Sample for %s:"; private static final String SERVICE_DESCRIPTION_HEADER_PATTERN = "Service Description: %s"; @@ -71,7 +70,7 @@ private static CommentStatement createPackageInfoJavadoc(GapicContext context) { javaDocCommentBuilder = javaDocCommentBuilder.addParagraph(PACKAGE_INFO_DESCRIPTION); for (Service service : context.services()) { - String javaClientName = String.format(CLIENT_PATTERN, service.name()); + String javaClientName = ClassNames.getServiceClientClassName(service); javaDocCommentBuilder = javaDocCommentBuilder.addParagraph( String.format("%s %s %s", DIVIDER, javaClientName, DIVIDER)); @@ -111,7 +110,6 @@ private static CommentStatement createPackageInfoJavadoc(GapicContext context) { javaDocCommentBuilder = javaDocCommentBuilder.addParagraph( String.format(SAMPLE_CODE_HEADER_PATTERN, javaClientName)); - // TODO(summerji): Add package-info.java sample code here. } diff --git a/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposer.java index 5d1f054e2f..b2c4a88432 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceCallableFactoryClassComposer.java @@ -66,7 +66,7 @@ public static GrpcServiceCallableFactoryClassComposer instance() { @Override public GapicClass generate(Service service, Map ignore) { Map types = createTypes(service); - String className = String.format("Grpc%sCallableFactory", service.name()); + String className = ClassNames.getGrpcServiceCallableFactoryClassName(service); GapicClass.Kind kind = Kind.STUB; String pakkage = String.format("%s.stub", service.pakkage()); diff --git a/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java index cedc91ee27..6673e10389 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java @@ -79,7 +79,6 @@ public class GrpcServiceStubClassComposer implements ClassComposer { private static final Statement EMPTY_LINE_STATEMENT = EmptyLineStatement.create(); - private static final String CLASS_NAME_PATTERN = "Grpc%sStub"; private static final String GRPC_SERVICE_CALLABLE_FACTORY_PATTERN = "Grpc%sCallableFactory"; private static final String METHOD_DESCRIPTOR_NAME_PATTERN = "%sMethodDescriptor"; private static final String PAGED_RESPONSE_TYPE_NAME_PATTERN = "%sPagedResponse"; @@ -117,7 +116,7 @@ public static GrpcServiceStubClassComposer instance() { public GapicClass generate(Service service, Map ignore) { String pakkage = service.pakkage() + ".stub"; Map types = createDynamicTypes(service, pakkage); - String className = getThisClassName(service.name()); + String className = ClassNames.getGrpcServiceStubClassName(service); GapicClass.Kind kind = Kind.STUB; Map protoMethodNameToDescriptorVarExprs = @@ -400,7 +399,7 @@ private static List createClassMethods( Map callableClassMemberVarExprs, Map protoMethodNameToDescriptorVarExprs) { List javaMethods = new ArrayList<>(); - javaMethods.addAll(createStaticCreatorMethods(service.name(), types)); + javaMethods.addAll(createStaticCreatorMethods(service, types)); javaMethods.addAll( createConstructorMethods( service, @@ -417,8 +416,8 @@ private static List createClassMethods( } private static List createStaticCreatorMethods( - String serviceName, Map types) { - TypeNode creatorMethodReturnType = types.get(getThisClassName(serviceName)); + Service service, Map types) { + TypeNode creatorMethodReturnType = types.get(ClassNames.getGrpcServiceStubClassName(service)); Function, MethodDefinition.Builder> creatorMethodStarterFn = argList -> MethodDefinition.builder() @@ -439,7 +438,7 @@ private static List createStaticCreatorMethods( argList -> NewObjectExpr.builder().setType(creatorMethodReturnType).setArguments(argList).build(); - TypeNode stubSettingsType = types.get(String.format(STUB_SETTINGS_PATTERN, serviceName)); + TypeNode stubSettingsType = types.get(ClassNames.getServiceStubSettingsClassName(service)); VariableExpr settingsVarExpr = VariableExpr.withVariable( Variable.builder().setName("settings").setType(stubSettingsType).build()); @@ -518,7 +517,7 @@ private static List createConstructorMethods( .setType(STATIC_TYPES.get("GrpcStubCallableFactory")) .build()); - TypeNode thisClassType = types.get(getThisClassName(service.name())); + TypeNode thisClassType = types.get(ClassNames.getGrpcServiceStubClassName(service)); TypeNode ioExceptionType = TypeNode.withReference(ConcreteReference.withClazz(IOException.class)); @@ -527,8 +526,7 @@ private static List createConstructorMethods( MethodDefinition.constructorBuilder() .setScope(ScopeNode.PROTECTED) .setReturnType(thisClassType) - .setHeaderCommentStatements( - Arrays.asList(createProtectedCtorComment(service.name()))) + .setHeaderCommentStatements(Arrays.asList(createProtectedCtorComment(service))) .setArguments( args.stream() .map(v -> v.toBuilder().setIsDecl(true).build()) @@ -557,7 +555,8 @@ private static List createConstructorMethods( .build()))); Expr thisExpr = - ValueExpr.withValue(ThisObjectValue.withType(types.get(getThisClassName(service.name())))); + ValueExpr.withValue( + ThisObjectValue.withType(types.get(ClassNames.getGrpcServiceStubClassName(service)))); // Body of the second constructor method. List secondCtorStatements = new ArrayList<>(); List secondCtorExprs = new ArrayList<>(); @@ -1049,20 +1048,17 @@ private static Map createDynamicTypes(Service service, String Map types = new HashMap<>(); types.putAll( Arrays.asList( - CLASS_NAME_PATTERN, - STUB_SETTINGS_PATTERN, - STUB_PATTERN, - GRPC_SERVICE_CALLABLE_FACTORY_PATTERN) + ClassNames.getGrpcServiceStubClassName(service), + ClassNames.getServiceStubSettingsClassName(service), + ClassNames.getServiceStubClassName(service), + ClassNames.getGrpcServiceCallableFactoryClassName(service)) .stream() .collect( Collectors.toMap( - p -> String.format(p, service.name()), - p -> + n -> n, + n -> TypeNode.withReference( - VaporReference.builder() - .setName(String.format(p, service.name())) - .setPakkage(stubPakkage) - .build())))); + VaporReference.builder().setName(n).setPakkage(stubPakkage).build())))); // Pagination types. types.putAll( service.methods().stream() @@ -1076,7 +1072,7 @@ private static Map createDynamicTypes(Service service, String .setName(String.format(PAGED_RESPONSE_TYPE_NAME_PATTERN, m.name())) .setPakkage(service.pakkage()) .setEnclosingClassNames( - String.format("%sClient", service.overriddenName())) + ClassNames.getServiceClientClassName(service)) .setIsStaticImport(true) .build())))); return types; @@ -1144,17 +1140,13 @@ private static String getProtoRpcFullMethodName(Service protoService, Method pro return String.format("google.iam.v1.IAMPolicy/%s", protoMethod.name()); } - private static String getThisClassName(String serviceName) { - return String.format(CLASS_NAME_PATTERN, serviceName); - } - - private static CommentStatement createProtectedCtorComment(String serviceName) { + private static CommentStatement createProtectedCtorComment(Service service) { return CommentStatement.withComment( JavaDocComment.withComment( String.format( "Constructs an instance of %s, using the given settings. This is protected so that" + " it is easy to make a subclass, but otherwise, the static factory methods" + " should be preferred.", - getThisClassName(serviceName)))); + ClassNames.getGrpcServiceStubClassName(service)))); } } diff --git a/src/main/java/com/google/api/generator/gapic/composer/MockServiceClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/MockServiceClassComposer.java index 5e1a5057f5..1e1c00d5f4 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/MockServiceClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/MockServiceClassComposer.java @@ -44,8 +44,6 @@ public class MockServiceClassComposer implements ClassComposer { private static final MockServiceClassComposer INSTANCE = new MockServiceClassComposer(); - private static final String MOCK_SERVICE_NAME_PATTERN = "Mock%s"; - private static final String MOCK_IMPL_NAME_PATTERN = "Mock%sImpl"; private static final String SERVICE_IMPL_VAR_NAME = "serviceImpl"; private MockServiceClassComposer() {} @@ -57,7 +55,7 @@ public static MockServiceClassComposer instance() { @Override public GapicClass generate(Service service, Map ignore) { Map types = createTypes(service); - String className = String.format(MOCK_SERVICE_NAME_PATTERN, service.name()); + String className = ClassNames.getMockServiceClassName(service); GapicClass.Kind kind = Kind.TEST; String pakkage = service.pakkage(); @@ -68,18 +66,18 @@ public GapicClass generate(Service service, Map ignore) { .setScope(ScopeNode.PUBLIC) .setName(className) .setImplementsTypes(createClassImplements(types)) - .setStatements(createFieldDeclarations(service.name(), types)) + .setStatements(createFieldDeclarations(service, types)) .setMethods(createClassMethods(service, types)) .build(); return GapicClass.create(kind, classDef); } private static List createFieldDeclarations( - String serviceName, Map types) { + Service service, Map types) { return Arrays.asList( ExprStatement.withExpr( VariableExpr.builder() - .setVariable(getServiceImplVariable(serviceName, types)) + .setVariable(getServiceImplVariable(service, types)) .setScope(ScopeNode.PRIVATE) .setIsFinal(true) .setIsDecl(true) @@ -102,9 +100,9 @@ private static List createClassImplements(Map types) private static List createClassMethods( Service service, Map types) { VariableExpr serviceImplVarExpr = - VariableExpr.withVariable(getServiceImplVariable(service.name(), types)); + VariableExpr.withVariable(getServiceImplVariable(service, types)); return Arrays.asList( - createConstructor(service.name(), serviceImplVarExpr, types), + createConstructor(service, serviceImplVarExpr, types), createGetRequestsMethod(serviceImplVarExpr, types), createAddResponseMethod(serviceImplVarExpr, types), createAddExceptionMethod(serviceImplVarExpr), @@ -113,8 +111,8 @@ private static List createClassMethods( } private static MethodDefinition createConstructor( - String serviceName, VariableExpr serviceImplVarExpr, Map types) { - String mockImplName = String.format(MOCK_IMPL_NAME_PATTERN, serviceName); + Service service, VariableExpr serviceImplVarExpr, Map types) { + String mockImplName = ClassNames.getMockServiceImplClassName(service); Expr serviceImplAssignExpr = AssignmentExpr.builder() .setVariableExpr(serviceImplVarExpr) @@ -124,7 +122,7 @@ private static MethodDefinition createConstructor( return MethodDefinition.constructorBuilder() .setScope(ScopeNode.PUBLIC) .setBody(Arrays.asList(ExprStatement.withExpr(serviceImplAssignExpr))) - .setReturnType(types.get(String.format(MOCK_SERVICE_NAME_PATTERN, serviceName))) + .setReturnType(types.get(ClassNames.getMockServiceClassName(service))) .build(); } @@ -255,13 +253,13 @@ private static Map createTypes(Service service) { .setPakkage("com.google.api.gax.grpc.testing") .build())); // Vapor same-package deps. - String mockImplName = String.format(MOCK_IMPL_NAME_PATTERN, service.name()); + String mockImplName = ClassNames.getMockServiceImplClassName(service); types.put( mockImplName, TypeNode.withReference( VaporReference.builder().setName(mockImplName).setPakkage(service.pakkage()).build())); - String className = String.format(MOCK_SERVICE_NAME_PATTERN, service.name()); + String className = ClassNames.getMockServiceClassName(service); types.put( className, TypeNode.withReference( @@ -269,10 +267,10 @@ private static Map createTypes(Service service) { return types; } - private static Variable getServiceImplVariable(String serviceName, Map types) { + private static Variable getServiceImplVariable(Service service, Map types) { return Variable.builder() .setName(SERVICE_IMPL_VAR_NAME) - .setType(types.get(String.format(MOCK_IMPL_NAME_PATTERN, serviceName))) + .setType(types.get(ClassNames.getMockServiceImplClassName(service))) .build(); } } diff --git a/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java index 3b74d03478..565f6f2030 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java @@ -60,7 +60,6 @@ public class MockServiceImplClassComposer implements ClassComposer { private static final MockServiceImplClassComposer INSTANCE = new MockServiceImplClassComposer(); - private static final String MOCK_SERVICE_IMPL_NAME_PATTERN = "Mock%sImpl"; private static final String IMPL_BASE_PATTERN = "%sImplBase"; private static final Map staticTypes = createStaticTypes(); private static final VariableExpr requestsVarExpr = @@ -96,7 +95,7 @@ public static MockServiceImplClassComposer instance() { @Override public GapicClass generate(Service service, Map ignore) { Map types = createDynamicTypes(service); - String className = String.format(MOCK_SERVICE_IMPL_NAME_PATTERN, service.name()); + String className = ClassNames.getMockServiceImplClassName(service); GapicClass.Kind kind = Kind.TEST; String pakkage = service.pakkage(); @@ -133,9 +132,7 @@ private static List createClassAnnotations() { private static List createClassMethods( Service service, Map types) { List javaMethods = new ArrayList<>(); - javaMethods.add( - createConstructor( - types.get(String.format(MOCK_SERVICE_IMPL_NAME_PATTERN, service.name())))); + javaMethods.add(createConstructor(types.get(ClassNames.getMockServiceImplClassName(service)))); javaMethods.add(createGetRequestsMethod()); javaMethods.add(createAddResponseMethod()); javaMethods.add(createSetResponsesMethod(service)); @@ -562,7 +559,7 @@ private static Map createDynamicTypes(Service service) { .setPakkage( String.format("%s.%sGrpc", service.originalJavaPackage(), service.name())) .build())); - String className = String.format(MOCK_SERVICE_IMPL_NAME_PATTERN, service.name()); + String className = ClassNames.getMockServiceImplClassName(service); types.put( className, TypeNode.withReference( @@ -577,7 +574,7 @@ private static Map createDynamicTypes(Service service) { private static TypeNode getThisClassType(Service service) { return TypeNode.withReference( VaporReference.builder() - .setName(String.format(MOCK_SERVICE_IMPL_NAME_PATTERN, service.name())) + .setName(ClassNames.getMockServiceImplClassName(service)) .setPakkage(service.pakkage()) .build()); } diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java index e6fec42bd9..cd9674dcd6 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java @@ -111,7 +111,7 @@ public static ServiceClientClassComposer instance() { @Override public GapicClass generate(Service service, Map messageTypes) { Map types = createTypes(service, messageTypes); - String className = getClientClassName(service); + String className = ClassNames.getServiceClientClassName(service); GapicClass.Kind kind = Kind.MAIN; String pakkage = service.pakkage(); boolean hasLroClient = hasLroMethods(service); @@ -121,8 +121,8 @@ public GapicClass generate(Service service, Map messageTypes) { .setHeaderCommentStatements( ServiceClientCommentComposer.createClassHeaderComments( service, - types.get(getClientClassName(service)), - types.get(getSettingsName(service)))) + types.get(ClassNames.getServiceClientClassName(service)), + types.get(ClassNames.getServiceSettingsClassName(service)))) .setPackageString(pakkage) .setAnnotations(createClassAnnotations(types)) .setScope(ScopeNode.PUBLIC) @@ -174,8 +174,8 @@ private static boolean hasLroMethods(Service service) { private static List createFieldDeclarations( Service service, Map types, boolean hasLroClient) { Map fieldNameToTypes = new HashMap<>(); - fieldNameToTypes.put("settings", types.get(getSettingsName(service))); - fieldNameToTypes.put("stub", types.get(getStubClassName(service))); + fieldNameToTypes.put("settings", types.get(ClassNames.getServiceSettingsClassName(service))); + fieldNameToTypes.put("stub", types.get(ClassNames.getServiceStubClassName(service))); if (hasLroClient) { fieldNameToTypes.put("operationsClient", types.get("OperationsClient")); } @@ -201,8 +201,8 @@ private static List createFieldDeclarations( private static List createStaticCreatorMethods( Service service, Map types) { List methods = new ArrayList<>(); - String thisClientName = getClientClassName(service); - String settingsName = getSettingsName(service); + String thisClientName = ClassNames.getServiceClientClassName(service); + String settingsName = ClassNames.getServiceSettingsClassName(service); TypeNode thisClassType = types.get(thisClientName); TypeNode exceptionType = types.get("IOException"); @@ -229,7 +229,8 @@ private static List createStaticCreatorMethods( MethodDefinition createMethodOne = MethodDefinition.builder() .setHeaderCommentStatements( - ServiceClientCommentComposer.createMethodNoArgComment(getClientClassName(service))) + ServiceClientCommentComposer.createMethodNoArgComment( + ClassNames.getServiceClientClassName(service))) .setScope(ScopeNode.PUBLIC) .setIsStatic(true) .setIsFinal(true) @@ -249,7 +250,7 @@ private static List createStaticCreatorMethods( MethodDefinition.builder() .setHeaderCommentStatements( ServiceClientCommentComposer.createMethodSettingsArgComment( - getClientClassName(service))) + ClassNames.getServiceClientClassName(service))) .setScope(ScopeNode.PUBLIC) .setIsStatic(true) .setIsFinal(true) @@ -268,7 +269,7 @@ private static List createStaticCreatorMethods( VariableExpr stubVarExpr = VariableExpr.withVariable( Variable.builder() - .setType(types.get(getStubClassName(service))) + .setType(types.get(ClassNames.getServiceStubClassName(service))) .setName("stub") .build()); AnnotationNode betaAnnotation = @@ -281,7 +282,7 @@ private static List createStaticCreatorMethods( MethodDefinition.builder() .setHeaderCommentStatements( ServiceClientCommentComposer.createCreateMethodStubArgComment( - getClientClassName(service), settingsVarExpr.type())) + ClassNames.getServiceClientClassName(service), settingsVarExpr.type())) .setAnnotations(Arrays.asList(betaAnnotation)) .setScope(ScopeNode.PUBLIC) .setIsStatic(true) @@ -299,8 +300,8 @@ private static List createStaticCreatorMethods( private static List createConstructorMethods( Service service, Map types, boolean hasLroClient) { List methods = new ArrayList<>(); - String thisClientName = getClientClassName(service); - String settingsName = getSettingsName(service); + String thisClientName = ClassNames.getServiceClientClassName(service); + String settingsName = ClassNames.getServiceSettingsClassName(service); TypeNode thisClassType = types.get(thisClientName); TypeNode stubSettingsType = types.get(String.format("%sStubSettings", service.name())); TypeNode operationsClientType = types.get("OperationsClient"); @@ -313,7 +314,7 @@ private static List createConstructorMethods( VariableExpr stubVarExpr = VariableExpr.withVariable( Variable.builder() - .setType(types.get(getStubClassName(service))) + .setType(types.get(ClassNames.getServiceStubClassName(service))) .setName("stub") .build()); VariableExpr operationsClientVarExpr = @@ -373,7 +374,7 @@ private static List createConstructorMethods( MethodDefinition.constructorBuilder() .setHeaderCommentStatements( ServiceClientCommentComposer.createProtectedCtorSettingsArgComment( - getClientClassName(service))) + ClassNames.getServiceClientClassName(service))) .setScope(ScopeNode.PROTECTED) .setReturnType(thisClassType) .setArguments(settingsVarExpr.toBuilder().setIsDecl(true).build()) @@ -423,8 +424,9 @@ private static List createConstructorMethods( private static List createGetterMethods( Service service, Map types, boolean hasLroClient) { Map methodNameToTypes = new LinkedHashMap<>(); - methodNameToTypes.put("getSettings", types.get(getSettingsName(service))); - methodNameToTypes.put("getStub", types.get(getStubClassName(service))); + methodNameToTypes.put( + "getSettings", types.get(ClassNames.getServiceSettingsClassName(service))); + methodNameToTypes.put("getStub", types.get(ClassNames.getServiceStubClassName(service))); String getOperationsClientMethodName = "getOperationsClient"; if (hasLroClient) { methodNameToTypes.put(getOperationsClientMethodName, types.get("OperationsClient")); @@ -689,7 +691,7 @@ private static MethodDefinition createCallableMethod( String rawMethodName = JavaStyle.toLowerCamelCase(method.name()); String methodName = getCallableName(callableMethodKind, rawMethodName); - TypeNode stubType = types.get(getStubClassName(service)); + TypeNode stubType = types.get(ClassNames.getServiceStubClassName(service)); MethodInvocationExpr returnExpr = MethodInvocationExpr.builder() .setExprReferenceExpr( @@ -718,7 +720,7 @@ private static List createBackgroundResourceMethods( VariableExpr stubVarExpr = VariableExpr.withVariable( Variable.builder() - .setType(types.get(getStubClassName(service))) + .setType(types.get(ClassNames.getServiceStubClassName(service))) .setName("stub") .build()); MethodDefinition closeMethod = @@ -1466,7 +1468,8 @@ private static Map createVaporTypes(Service service) { VaporReference.builder() .setName( String.format(t, JavaStyle.toUpperCamelCase(method.name()))) - .setEnclosingClassNames(getClientClassName(service)) + .setEnclosingClassNames( + ClassNames.getServiceClientClassName(service)) .setPakkage(service.pakkage()) .setIsStaticImport(true) // Same class, so they won't be imported. .build())))); @@ -1491,7 +1494,8 @@ private static Map createVaporTypes(Service service) { VaporReference.builder() .setName(String.format(PAGED_RESPONSE_TYPE_NAME_PATTERN, m.name())) .setPakkage(service.pakkage()) - .setEnclosingClassNames(getClientClassName(service)) + .setEnclosingClassNames( + ClassNames.getServiceClientClassName(service)) .setIsStaticImport(true) .build())))); return types; @@ -1516,18 +1520,6 @@ private static Variable createVariable(String name, TypeNode type) { return Variable.builder().setName(name).setType(type).build(); } - private static String getClientClassName(Service service) { - return String.format("%sClient", service.overriddenName()); - } - - private static String getSettingsName(Service service) { - return String.format("%sSettings", service.overriddenName()); - } - - private static String getStubClassName(Service service) { - return String.format("%sStub", service.name()); - } - private static List getGenericsForCallable( CallableMethodKind kind, Method method, Map types) { if (kind.equals(CallableMethodKind.LRO)) { diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientCommentComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientCommentComposer.java index c7f63ee1d9..6ed371a489 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientCommentComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientCommentComposer.java @@ -30,10 +30,6 @@ import java.util.stream.Stream; class ServiceClientCommentComposer { - // Name Pattern. - private static final String SETTINGS_NAME_PATTERN = "%sSettings"; - private static final String CLASS_NAME_PATTERN = "%sClient"; - // Tokens. private static final String COLON = ":"; private static final String EMPTY_STRING = ""; @@ -128,7 +124,8 @@ static List createClassHeaderComments( // API surface description. classHeaderJavadocBuilder.addParagraph( - String.format(SERVICE_DESCRIPTION_CLOSE_PATTERN, getClientClassName(service))); + String.format( + SERVICE_DESCRIPTION_CLOSE_PATTERN, ClassNames.getServiceClientClassName(service))); classHeaderJavadocBuilder.addParagraph(SERVICE_DESCRIPTION_SURFACE_SUMMARY_STRING); classHeaderJavadocBuilder.addOrderedList(SERVICE_DESCRIPTION_SURFACE_DESCRIPTION); classHeaderJavadocBuilder.addParagraph(SERVICE_DESCRIPTION_SURFACE_CODA_STRING); @@ -138,7 +135,9 @@ static List createClassHeaderComments( // Customization examples. classHeaderJavadocBuilder.addParagraph( - String.format(SERVICE_DESCRIPTION_CUSTOMIZE_SUMMARY_PATTERN, getSettingsName(service))); + String.format( + SERVICE_DESCRIPTION_CUSTOMIZE_SUMMARY_PATTERN, + ClassNames.getServiceSettingsClassName(service))); classHeaderJavadocBuilder.addParagraph(SERVICE_DESCRIPTION_CREDENTIALS_SUMMARY_STRING); classHeaderJavadocBuilder.addSampleCode( ServiceClientSampleCodeComposer.composeClassHeaderCredentialsSampleCode( @@ -269,12 +268,4 @@ private static JavaDocComment.Builder processProtobufComment( return commentBuilder; } - - private static String getSettingsName(Service service) { - return String.format(SETTINGS_NAME_PATTERN, service.overriddenName()); - } - - private static String getClientClassName(Service service) { - return String.format(CLASS_NAME_PATTERN, service.overriddenName()); - } } diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientTestClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientTestClassComposer.java index 3395d67121..1324b950bf 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientTestClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientTestClassComposer.java @@ -101,12 +101,9 @@ public class ServiceClientTestClassComposer { private static final String CLASS_NAME_PATTERN = "%sClientTest"; private static final String CLIENT_VAR_NAME = "client"; private static final String GRPC_TESTING_PACKAGE = "com.google.api.gax.grpc.testing"; - private static final String MOCK_SERVICE_CLASS_NAME_PATTERN = "Mock%s"; private static final String MOCK_SERVICE_VAR_NAME_PATTERN = "mock%s"; private static final String PAGED_RESPONSE_TYPE_NAME_PATTERN = "%sPagedResponse"; - private static final String SERVICE_CLIENT_CLASS_NAME_PATTERN = "%sClient"; private static final String SERVICE_HELPER_VAR_NAME = "mockServiceHelper"; - private static final String SERVICE_SETTINGS_CLASS_NAME_PATTERN = "%sSettings"; private static final String STUB_SETTINGS_PATTERN = "%sSettings"; private static final ServiceClientTestClassComposer INSTANCE = @@ -171,9 +168,10 @@ private static Map createClassMemberVarExprs( (name, type) -> VariableExpr.withVariable(Variable.builder().setName(name).setType(type).build()); Map fields = new LinkedHashMap<>(); - fields.put(getMockServiceVarName(service), types.get(getMockServiceClassName(service))); + fields.put( + getMockServiceVarName(service), types.get(ClassNames.getMockServiceClassName(service))); fields.put(SERVICE_HELPER_VAR_NAME, STATIC_TYPES.get("MockServiceHelper")); - fields.put(CLIENT_VAR_NAME, types.get(getClientClassName(service))); + fields.put(CLIENT_VAR_NAME, types.get(ClassNames.getServiceClientClassName(service))); fields.put(CHANNEL_PROVIDER_VAR_NAME, STATIC_TYPES.get("LocalChannelProvider")); return fields.entrySet().stream() .collect(Collectors.toMap(e -> e.getKey(), e -> varExprFn.apply(e.getKey(), e.getValue()))); @@ -315,7 +313,7 @@ private static MethodDefinition createSetUpMethod( .build()) .build(); - TypeNode settingsType = types.get(getServiceSettingsClassName(service)); + TypeNode settingsType = types.get(ClassNames.getServiceSettingsClassName(service)); VariableExpr localSettingsVarExpr = VariableExpr.withVariable( Variable.builder().setName("settings").setType(settingsType).build()); @@ -365,7 +363,8 @@ private static MethodDefinition createSetUpMethod( .setVariableExpr(clientVarExpr) .setValueExpr( MethodInvocationExpr.builder() - .setStaticReferenceType(types.get(getClientClassName(service))) + .setStaticReferenceType( + types.get(ClassNames.getServiceClientClassName(service))) .setMethodName("create") .setArguments(Arrays.asList(localSettingsVarExpr)) .setReturnType(clientVarExpr.type()) @@ -1739,34 +1738,27 @@ private static Map createDefaultMethodNamesToTypes() { private static Map createDynamicTypes(Service service) { Map types = new HashMap<>(); - // ServiceStubSettings class. - String stubSettingsClassName = getStubSettingsClassName(service); types.put( - stubSettingsClassName, + ClassNames.getMockServiceClassName(service), TypeNode.withReference( VaporReference.builder() - .setName(stubSettingsClassName) - .setPakkage(String.format("%s.stub", service.pakkage())) - .build())); - types.put( - getMockServiceClassName(service), - TypeNode.withReference( - VaporReference.builder() - .setName(getMockServiceClassName(service)) + .setName(ClassNames.getMockServiceClassName(service)) .setPakkage(String.format("%s", service.pakkage())) .build())); // Classes in the same package. types.putAll( - Arrays.asList(SERVICE_CLIENT_CLASS_NAME_PATTERN, SERVICE_SETTINGS_CLASS_NAME_PATTERN) + Arrays.asList( + ClassNames.getServiceClientClassName(service), + ClassNames.getServiceSettingsClassName(service)) .stream() .collect( Collectors.toMap( - p -> String.format(p, service.overriddenName()), - p -> + n -> n, + n -> TypeNode.withReference( VaporReference.builder() - .setName(String.format(p, service.overriddenName())) + .setName(n) .setPakkage(service.pakkage()) .build())))); @@ -1782,7 +1774,8 @@ private static Map createDynamicTypes(Service service) { VaporReference.builder() .setName(String.format(PAGED_RESPONSE_TYPE_NAME_PATTERN, m.name())) .setPakkage(service.pakkage()) - .setEnclosingClassNames(getClientClassName(service)) + .setEnclosingClassNames( + ClassNames.getServiceClientClassName(service)) .setIsStaticImport(true) .build())))); return types; @@ -1897,7 +1890,7 @@ private static TypeNode getPagedResponseType(Method method, Service service) { VaporReference.builder() .setName(String.format(PAGED_RESPONSE_TYPE_NAME_PATTERN, method.name())) .setPakkage(service.pakkage()) - .setEnclosingClassNames(getClientClassName(service)) + .setEnclosingClassNames(ClassNames.getServiceClientClassName(service)) .setIsStaticImport(true) .build()); } @@ -1921,26 +1914,10 @@ private static String getCallableMethodName(Method protoMethod) { } } - private static String getClientClassName(Service service) { - return String.format(SERVICE_CLIENT_CLASS_NAME_PATTERN, service.overriddenName()); - } - - private static String getServiceSettingsClassName(Service service) { - return String.format(SERVICE_SETTINGS_CLASS_NAME_PATTERN, service.overriddenName()); - } - private static String getMockServiceVarName(Service service) { return String.format(MOCK_SERVICE_VAR_NAME_PATTERN, service.name()); } - private static String getMockServiceClassName(Service service) { - return String.format(MOCK_SERVICE_CLASS_NAME_PATTERN, service.name()); - } - - private static String getStubSettingsClassName(Service service) { - return String.format(STUB_SETTINGS_PATTERN, service.name()); - } - private static boolean isProtoEmptyType(TypeNode type) { return type.reference().pakkage().equals("com.google.protobuf") && type.reference().name().equals("Empty"); 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 7e8aec2b25..634fceaad5 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 @@ -72,11 +72,8 @@ public class ServiceSettingsClassComposer implements ClassComposer { private static final String BUILDER_CLASS_NAME = "Builder"; - private static final String CLASS_NAME_PATTERN = "%sSettings"; - private static final String CLIENT_CLASS_NAME_PATTERN = "%sClient"; private static final String CALL_SETTINGS_TYPE_NAME_PATTERN = "%sCallSettings"; private static final String PAGED_RESPONSE_TYPE_NAME_PATTERN = "%sPagedResponse"; - private static final String STUB_SETTINGS_PATTERN = "%sStubSettings"; private static final String OPERATION_SETTINGS_LITERAL = "OperationSettings"; private static final String SETTINGS_LITERAL = "Settings"; @@ -95,7 +92,7 @@ public static ServiceSettingsClassComposer instance() { public GapicClass generate(Service service, Map ignore) { String pakkage = service.pakkage(); Map types = createDynamicTypes(service); - String className = getThisClassName(service); + String className = ClassNames.getServiceSettingsClassName(service); GapicClass.Kind kind = Kind.MAIN; ClassDefinition classDef = @@ -111,7 +108,10 @@ public GapicClass generate(Service service, Map ignore) { .get("ClientSettings") .reference() .copyAndSetGenerics( - Arrays.asList(types.get(getThisClassName(service)).reference())))) + Arrays.asList( + types + .get(ClassNames.getServiceSettingsClassName(service)) + .reference())))) .setMethods(createClassMethods(service, types)) .setNestedClasses(Arrays.asList(createNestedBuilderClass(service, types))) .build(); @@ -131,7 +131,7 @@ private static List createClassHeaderComments( .findFirst() .orElse(service.methods().get(0))); return SettingsCommentComposer.createClassHeaderComments( - getClientClassName(service), service.defaultHost(), methodOpt, classType); + ClassNames.getServiceClientClassName(service), service.defaultHost(), methodOpt, classType); } private static List createClassAnnotations() { @@ -161,7 +161,7 @@ private static MethodDefinition createConstructorMethod( .setName("settingsBuilder") .setType(types.get(BUILDER_CLASS_NAME)) .build()); - TypeNode thisClassType = types.get(getThisClassName(service)); + TypeNode thisClassType = types.get(ClassNames.getServiceSettingsClassName(service)); return MethodDefinition.constructorBuilder() .setScope(ScopeNode.PROTECTED) .setReturnType(thisClassType) @@ -179,7 +179,7 @@ private static MethodDefinition createConstructorMethod( private static List createSettingsGetterMethods( Service service, Map types) { - TypeNode stubSettingsType = types.get(getStubSettingsClassName(service)); + TypeNode stubSettingsType = types.get(ClassNames.getServiceStubSettingsClassName(service)); BiFunction methodMakerFn = (retType, methodName) -> MethodDefinition.builder() @@ -222,12 +222,12 @@ private static List createSettingsGetterMethods( private static MethodDefinition createCreatorMethod( Service service, Map types) { - TypeNode stubClassType = types.get(getStubSettingsClassName(service)); + TypeNode stubClassType = types.get(ClassNames.getServiceStubSettingsClassName(service)); VariableExpr stubVarExpr = VariableExpr.withVariable( Variable.builder().setName("stub").setType(stubClassType).build()); - TypeNode thisClassType = types.get(getThisClassName(service)); + TypeNode thisClassType = types.get(ClassNames.getServiceSettingsClassName(service)); MethodInvocationExpr stubBuilderMethodExpr = MethodInvocationExpr.builder() .setExprReferenceExpr(stubVarExpr) @@ -238,7 +238,7 @@ private static MethodDefinition createCreatorMethod( TypeNode.withReference( VaporReference.builder() .setName("Builder") - .setEnclosingClassNames(getThisClassName(service)) + .setEnclosingClassNames(ClassNames.getServiceSettingsClassName(service)) .setPakkage(service.pakkage()) .build()); Expr returnMethodExpr = @@ -275,7 +275,8 @@ private static List createDefaultGetterMethods( .setName(mName) .setReturnExpr( MethodInvocationExpr.builder() - .setStaticReferenceType(types.get(getStubSettingsClassName(service))) + .setStaticReferenceType( + types.get(ClassNames.getServiceStubSettingsClassName(service))) .setMethodName(mName) .setReturnType(retType) .build()); @@ -394,7 +395,8 @@ private static List createBuilderHelperMethods( .setType(builderType) .setArguments( ValueExpr.withValue( - ThisObjectValue.withType(types.get(getThisClassName(service))))) + ThisObjectValue.withType( + types.get(ClassNames.getServiceSettingsClassName(service))))) .build()) .build(); @@ -405,7 +407,8 @@ private static ClassDefinition createNestedBuilderClass( Service service, Map types) { return ClassDefinition.builder() .setHeaderCommentStatements( - SettingsCommentComposer.createBuilderClassComment(getThisClassName(service))) + SettingsCommentComposer.createBuilderClassComment( + ClassNames.getServiceSettingsClassName(service))) .setIsNested(true) .setScope(ScopeNode.PUBLIC) .setIsStatic(true) @@ -416,7 +419,7 @@ private static ClassDefinition createNestedBuilderClass( .setClazz(ClientSettings.Builder.class) .setGenerics( Arrays.asList( - types.get(getThisClassName(service)).reference(), + types.get(ClassNames.getServiceSettingsClassName(service)).reference(), types.get(BUILDER_CLASS_NAME).reference())) .build())) .setMethods(createNestedBuilderClassMethods(service, types)) @@ -481,7 +484,8 @@ private static List createNestedBuilderConstructorMethods( ctorMakerFn.apply( clientContextVarExpr, MethodInvocationExpr.builder() - .setStaticReferenceType(types.get(getStubSettingsClassName(service))) + .setStaticReferenceType( + types.get(ClassNames.getServiceStubSettingsClassName(service))) .setMethodName("newBuilder") .setArguments(Arrays.asList(clientContextVarExpr)) .build()); @@ -490,7 +494,7 @@ private static List createNestedBuilderConstructorMethods( VariableExpr.withVariable( Variable.builder() .setName("settings") - .setType(types.get(getThisClassName(service))) + .setType(types.get(ClassNames.getServiceSettingsClassName(service))) .build()); MethodInvocationExpr settingsBuilderMethodExpr = MethodInvocationExpr.builder() @@ -517,7 +521,7 @@ private static MethodDefinition createNestedBuilderCreatorMethod( Service service, Map types) { MethodInvocationExpr ctorArg = MethodInvocationExpr.builder() - .setStaticReferenceType(types.get(getStubSettingsClassName(service))) + .setStaticReferenceType(types.get(ClassNames.getServiceStubSettingsClassName(service))) .setMethodName("newBuilder") .build(); @@ -651,7 +655,7 @@ private static List createNestedBuilderSettingsGetterMethods( private static MethodDefinition createNestedBuilderClassBuildMethod( Service service, Map types) { TypeNode builderType = types.get(BUILDER_CLASS_NAME); - TypeNode returnType = types.get(getThisClassName(service)); + TypeNode returnType = types.get(ClassNames.getServiceSettingsClassName(service)); return MethodDefinition.builder() .setIsOverride(true) .setScope(ScopeNode.PUBLIC) @@ -698,7 +702,7 @@ private static Map createDynamicTypes(Service service) { Map types = new HashMap<>(); // ServiceStubSettings class. - String stubSettingsClassName = getStubSettingsClassName(service); + String stubSettingsClassName = ClassNames.getServiceStubSettingsClassName(service); types.put( stubSettingsClassName, TypeNode.withReference( @@ -708,10 +712,10 @@ private static Map createDynamicTypes(Service service) { .build())); // This class. types.put( - getThisClassName(service), + ClassNames.getServiceSettingsClassName(service), TypeNode.withReference( VaporReference.builder() - .setName(getThisClassName(service)) + .setName(ClassNames.getServiceSettingsClassName(service)) .setPakkage(service.pakkage()) .build())); // Nested Builder class. @@ -720,7 +724,7 @@ private static Map createDynamicTypes(Service service) { TypeNode.withReference( VaporReference.builder() .setName(BUILDER_CLASS_NAME) - .setEnclosingClassNames(getThisClassName(service)) + .setEnclosingClassNames(ClassNames.getServiceSettingsClassName(service)) .setPakkage(service.pakkage()) .setIsStaticImport(true) .build())); @@ -737,7 +741,8 @@ private static Map createDynamicTypes(Service service) { VaporReference.builder() .setName(String.format(PAGED_RESPONSE_TYPE_NAME_PATTERN, m.name())) .setPakkage(service.pakkage()) - .setEnclosingClassNames(getClientClassName(service)) + .setEnclosingClassNames( + ClassNames.getServiceClientClassName(service)) .setIsStaticImport(true) .build())))); return types; @@ -818,24 +823,12 @@ private static TypeNode getCallSettingsTypeHelper( ConcreteReference.builder().setClazz(callSettingsClazz).setGenerics(generics).build()); } - private static String getThisClassName(Service service) { - return String.format(CLASS_NAME_PATTERN, service.overriddenName()); - } - - private static String getClientClassName(Service service) { - return String.format(CLIENT_CLASS_NAME_PATTERN, service.overriddenName()); - } - - private static String getStubSettingsClassName(Service service) { - return String.format(STUB_SETTINGS_PATTERN, service.name()); - } - private static TypeNode getStubSettingsBuilderType(Service service) { return TypeNode.withReference( VaporReference.builder() .setPakkage(String.format("%s.stub", service.pakkage())) .setName(BUILDER_CLASS_NAME) - .setEnclosingClassNames(getStubSettingsClassName(service)) + .setEnclosingClassNames(ClassNames.getServiceStubSettingsClassName(service)) .build()); } diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceStubClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceStubClassComposer.java index fd6fb17e34..c55d0fefc9 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceStubClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceStubClassComposer.java @@ -262,7 +262,8 @@ private static Map createTypes( VaporReference.builder() .setName(String.format(PAGED_RESPONSE_TYPE_NAME_PATTERN, m.name())) .setPakkage(service.pakkage()) - .setEnclosingClassNames(getClientClassName(service)) + .setEnclosingClassNames( + ClassNames.getServiceClientClassName(service)) .setIsStaticImport(true) .build())))); 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 8f9d0730b4..9380864418 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 @@ -118,8 +118,6 @@ public class ServiceStubSettingsClassComposer { private static final Statement EMPTY_LINE_STATEMENT = EmptyLineStatement.create(); private static final String BATCHING_DESC_PATTERN = "%s_BATCHING_DESC"; - private static final String CLASS_NAME_PATTERN = "%sStubSettings"; - private static final String GRPC_SERVICE_STUB_PATTERN = "Grpc%sStub"; private static final String PAGE_STR_DESC_PATTERN = "%s_PAGE_STR_DESC"; private static final String PAGED_RESPONSE_FACTORY_PATTERN = "%s_PAGE_STR_FACT"; private static final String PAGED_RESPONSE_TYPE_NAME_PATTERN = "%sPagedResponse"; @@ -129,8 +127,6 @@ public class ServiceStubSettingsClassComposer { private static final String NESTED_RETRYABLE_CODE_DEFINITIONS_VAR_NAME = "RETRYABLE_CODE_DEFINITIONS"; private static final String NESTED_RETRY_PARAM_DEFINITIONS_VAR_NAME = "RETRY_PARAM_DEFINITIONS"; - private static final String SERVICE_CLIENT_CLASS_NAME_PATTERN = "%sClient"; - private static final String STUB_PATTERN = "%sStub"; private static final String OPERATION_SETTINGS_LITERAL = "OperationSettings"; private static final String SETTINGS_LITERAL = "Settings"; @@ -169,7 +165,7 @@ public GapicClass generate( Map methodSettingsMemberVarExprs = createMethodSettingsClassMemberVarExprs( service, serviceConfig, types, /* isNestedClass= */ false); - String className = getThisClassName(service.name()); + String className = ClassNames.getServiceStubSettingsClassName(service); ClassDefinition classDef = ClassDefinition.builder() @@ -211,11 +207,11 @@ private static List createClassHeaderComments( .findFirst() .orElse(service.methods().get(0))); return SettingsCommentComposer.createClassHeaderComments( - String.format(STUB_PATTERN, service.name()), service.defaultHost(), methodOpt, classType); + ClassNames.getServiceStubClassName(service), service.defaultHost(), methodOpt, classType); } private static TypeNode createExtendsType(Service service, Map types) { - TypeNode thisClassType = types.get(getThisClassName(service.name())); + TypeNode thisClassType = types.get(ClassNames.getServiceStubSettingsClassName(service)); return TypeNode.withReference( STATIC_TYPES .get("StubSettings") @@ -788,11 +784,12 @@ private static MethodDefinition createCreateStubMethod( Expr createExpr = MethodInvocationExpr.builder() - .setStaticReferenceType(types.get(getGrpcServiceStubTypeName(service.name()))) + .setStaticReferenceType(types.get(ClassNames.getGrpcServiceStubClassName(service))) .setMethodName("create") .setArguments( ValueExpr.withValue( - ThisObjectValue.withType(types.get(getThisClassName(service.name()))))) + ThisObjectValue.withType( + types.get(ClassNames.getServiceStubSettingsClassName(service))))) .build(); IfStatement ifStatement = @@ -817,7 +814,7 @@ private static MethodDefinition createCreateStubMethod( ThrowExpr.builder().setType(exceptionType).setMessageExpr(errorMessageExpr).build()); // Put the method together. - TypeNode returnType = types.get(getServiceStubTypeName(service.name())); + TypeNode returnType = types.get(ClassNames.getServiceStubClassName(service)); AnnotationNode annotation = AnnotationNode.builder() .setType(STATIC_TYPES.get("BetaApi")) @@ -989,7 +986,8 @@ private static List createDefaultHelperAndGetterMethods( TypeNode.withReference(ConcreteReference.withClazz(Class.class))) .setName("class") .build()) - .setStaticReferenceType(types.get(getThisClassName(service.name()))) + .setStaticReferenceType( + types.get(ClassNames.getServiceStubSettingsClassName(service))) .build()) .build(); @@ -1085,7 +1083,8 @@ private static List createBuilderHelperMethods( .setReturnExpr( newBuilderFn.apply( ValueExpr.withValue( - ThisObjectValue.withType(types.get(getThisClassName(service.name())))))) + ThisObjectValue.withType( + types.get(ClassNames.getServiceStubClassName(service)))))) .build()); return javaMethods; @@ -1095,7 +1094,7 @@ private static MethodDefinition createClassConstructor( Service service, Map methodSettingsMemberVarExprs, Map types) { - TypeNode thisType = types.get(getThisClassName(service.name())); + TypeNode thisType = types.get(ClassNames.getServiceStubSettingsClassName(service)); final VariableExpr settingsBuilderVarExpr = VariableExpr.withVariable( Variable.builder() @@ -1145,7 +1144,7 @@ private static MethodDefinition createClassConstructor( private static ClassDefinition createNestedBuilderClass( Service service, @Nullable GapicServiceConfig serviceConfig, Map types) { // TODO(miraleung): Robustify this against a null serviceConfig. - String thisClassName = getThisClassName(service.name()); + String thisClassName = ClassNames.getServiceStubSettingsClassName(service); TypeNode outerThisClassType = types.get(thisClassName); String className = "Builder"; @@ -1168,7 +1167,8 @@ private static ClassDefinition createNestedBuilderClass( return ClassDefinition.builder() .setIsNested(true) .setHeaderCommentStatements( - SettingsCommentComposer.createBuilderClassComment(getThisClassName(service.name()))) + SettingsCommentComposer.createBuilderClassComment( + ClassNames.getServiceStubSettingsClassName(service))) .setScope(ScopeNode.PUBLIC) .setIsStatic(true) .setName(className) @@ -1527,7 +1527,7 @@ private static List createNestedClassConstructorMethods( .build()); // Third constructor that takes a ServiceStubSettings. - TypeNode outerSettingsType = types.get(getThisClassName(service.name())); + TypeNode outerSettingsType = types.get(ClassNames.getServiceStubSettingsClassName(service)); VariableExpr settingsVarExpr = VariableExpr.withVariable( Variable.builder().setType(outerSettingsType).setName("settings").build()); @@ -1760,7 +1760,7 @@ private static List createNestedClassSettingsBuilderGetterMeth private static MethodDefinition createNestedClassBuildMethod( Service service, Map types) { - TypeNode outerClassType = types.get(getThisClassName(service.name())); + TypeNode outerClassType = types.get(ClassNames.getServiceStubSettingsClassName(service)); TypeNode builderType = types.get(NESTED_BUILDER_CLASS_NAME); return MethodDefinition.builder() @@ -1835,7 +1835,7 @@ private static Map createStaticTypes() { } private static Map createDynamicTypes(Service service, String pakkage) { - String thisClassName = getThisClassName(service.name()); + String thisClassName = ClassNames.getServiceStubSettingsClassName(service); Map dynamicTypes = new HashMap<>(); // This type. @@ -1857,16 +1857,17 @@ private static Map createDynamicTypes(Service service, String // Other generated stub classes. dynamicTypes.putAll( - Arrays.asList(GRPC_SERVICE_STUB_PATTERN, STUB_PATTERN).stream() + Arrays.asList( + ClassNames.getGrpcServiceStubClassName(service), + ClassNames.getServiceStubSettingsClassName(service), + ClassNames.getServiceStubClassName(service)) + .stream() .collect( Collectors.toMap( - p -> String.format(p, service.name()), - p -> + n -> n, + n -> TypeNode.withReference( - VaporReference.builder() - .setName(String.format(p, service.name())) - .setPakkage(pakkage) - .build())))); + VaporReference.builder().setName(n).setPakkage(pakkage).build())))); // Pagination types. dynamicTypes.putAll( @@ -1880,7 +1881,8 @@ private static Map createDynamicTypes(Service service, String VaporReference.builder() .setName(getPagedResponseTypeName(m.name())) .setPakkage(service.pakkage()) - .setEnclosingClassNames(getClientClassName(service)) + .setEnclosingClassNames( + ClassNames.getServiceClientClassName(service)) .setIsStaticImport(true) .build())))); @@ -1957,26 +1959,10 @@ private static VariableExpr createNestedRetryParamDefinitionsVarExpr() { .build()); } - private static String getThisClassName(String serviceName) { - return String.format(CLASS_NAME_PATTERN, JavaStyle.toUpperCamelCase(serviceName)); - } - private static String getPagedResponseTypeName(String methodName) { return String.format(PAGED_RESPONSE_TYPE_NAME_PATTERN, JavaStyle.toUpperCamelCase(methodName)); } - private static String getServiceStubTypeName(String serviceName) { - return String.format(STUB_PATTERN, JavaStyle.toUpperCamelCase(serviceName)); - } - - private static String getGrpcServiceStubTypeName(String serviceName) { - return String.format(GRPC_SERVICE_STUB_PATTERN, JavaStyle.toUpperCamelCase(serviceName)); - } - - private static String getClientClassName(Service service) { - return String.format(SERVICE_CLIENT_CLASS_NAME_PATTERN, service.overriddenName()); - } - private static TypeNode getCallSettingsType( Method method, Map types, diff --git a/test/integration/goldens/logging/package-info.java b/test/integration/goldens/logging/package-info.java index 00cfd2a443..e9e35d3456 100644 --- a/test/integration/goldens/logging/package-info.java +++ b/test/integration/goldens/logging/package-info.java @@ -17,23 +17,23 @@ /** * The interfaces provided are listed below, along with usage samples. * - *

======================= LoggingServiceV2Client ======================= + *

======================= LoggingClient ======================= * *

Service Description: Service for ingesting and querying logs. * - *

Sample for LoggingServiceV2Client: + *

Sample for LoggingClient: * - *

======================= ConfigServiceV2Client ======================= + *

======================= ConfigClient ======================= * *

Service Description: Service for configuring sinks used to route log entries. * - *

Sample for ConfigServiceV2Client: + *

Sample for ConfigClient: * - *

======================= MetricsServiceV2Client ======================= + *

======================= MetricsClient ======================= * *

Service Description: Service for configuring logs-based metrics. * - *

Sample for MetricsServiceV2Client: + *

Sample for MetricsClient: */ @Generated("by gapic-generator-java") package com.google.cloud.logging.v2;