Skip to content

Commit 5782c95

Browse files
authored
Merge branch 'master' into release-v1.0.3
2 parents e6932f4 + c9a7e11 commit 5782c95

File tree

49 files changed

+2832
-468
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+2832
-468
lines changed

.githooks/pre-commit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ if [ $NUM_JAVA_FILES_CHANGED -gt 0 ]
134134
then
135135
echo_status "Checking Apache License Header ..."
136136
header_check_preparation
137-
addlicense -c "Google LLC" -l apache -check $(find $PWD -type f -name '*.java' ! -iname '*PlaceholderFile.java')
137+
addlicense -c "Google LLC" -l apache -check $(find $PWD/src -type f -name '*.java' ! -iname '*PlaceholderFile.java')
138138
CHECK_STATUS=$?
139139
if [ $CHECK_STATUS != 0 ]
140140
then

src/main/java/com/google/api/generator/engine/ast/TypeNode.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,9 @@ public enum TypeKind {
8181
public static final TypeNode STRING = withReference(ConcreteReference.withClazz(String.class));
8282
public static final TypeNode VOID_OBJECT = withReference(ConcreteReference.withClazz(Void.class));
8383

84+
public static final TypeNode DEPRECATED =
85+
withReference(ConcreteReference.withClazz(Deprecated.class));
86+
8487
public static final TypeNode STRING_ARRAY =
8588
builder()
8689
.setTypeKind(TypeKind.OBJECT)

src/main/java/com/google/api/generator/engine/ast/UnaryOperationExpr.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,18 @@ private UnaryOperationExpr build() {
7373
TypeNode exprType = unaryOperationExpr.expr().type();
7474
OperatorKind operator = unaryOperationExpr.operatorKind();
7575

76-
// TODO: (summerji) Add Decl Check for variable.
7776
// Add final keyword checking for post/prefix ++, -- when needed.
7877
if (operator.equals(OperatorKind.UNARY_POST_INCREMENT)
7978
&& unaryOperationExpr.expr() instanceof VariableExpr) {
79+
VariableExpr varExpr = (VariableExpr) unaryOperationExpr.expr();
8080
Preconditions.checkState(
81-
!((VariableExpr) unaryOperationExpr.expr()).isFinal(),
81+
!varExpr.isFinal(),
82+
String.format("Cannot increment the final variable '%s'.", varExpr.variable().name()));
83+
84+
Preconditions.checkState(
85+
!varExpr.isDecl(),
8286
String.format(
83-
"Cannot assign a value to final variable '%s'.",
84-
((VariableExpr) unaryOperationExpr.expr()).variable().name()));
87+
"Cannot increment the declaration of variable %s", varExpr.variable().name()));
8588
}
8689

8790
final String errorMsg =

src/main/java/com/google/api/generator/engine/lexicon/Literal.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
import java.util.regex.Pattern;
1818

19-
// TODO(miraleung): Refactor this out into int, bool, null, float, string literal classes.
2019
public class Literal {
2120
private static final String BOOLEAN_TRUE = "true";
2221
private static final String BOOLEAN_FALSE = "false";

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ public GapicClass generate(GapicContext ignored, Service service) {
7777
.setPackageString(pakkage)
7878
.setHeaderCommentStatements(
7979
StubCommentComposer.createGrpcServiceCallableFactoryClassHeaderComments(
80-
service.name()))
81-
.setAnnotations(createClassAnnotations(service.pakkage(), typeStore))
80+
service.name(), service.isDeprecated()))
81+
.setAnnotations(createClassAnnotations(service, typeStore))
8282
.setImplementsTypes(createClassImplements(typeStore))
8383
.setName(className)
8484
.setMethods(createClassMethods(typeStore))
@@ -87,11 +87,16 @@ public GapicClass generate(GapicContext ignored, Service service) {
8787
return GapicClass.create(kind, classDef);
8888
}
8989

90-
private static List<AnnotationNode> createClassAnnotations(String pakkage, TypeStore typeStore) {
90+
private static List<AnnotationNode> createClassAnnotations(Service service, TypeStore typeStore) {
9191
List<AnnotationNode> annotations = new ArrayList<>();
92-
if (!PackageChecker.isGaApi(pakkage)) {
92+
if (!PackageChecker.isGaApi(service.pakkage())) {
9393
annotations.add(AnnotationNode.withType(typeStore.get("BetaApi")));
9494
}
95+
96+
if (service.isDeprecated()) {
97+
annotations.add(AnnotationNode.withType(TypeNode.DEPRECATED));
98+
}
99+
95100
annotations.add(
96101
AnnotationNode.builder()
97102
.setType(typeStore.get("Generated"))

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,9 @@ public GapicClass generate(GapicContext ignored, Service service) {
162162
ClassDefinition.builder()
163163
.setPackageString(pakkage)
164164
.setHeaderCommentStatements(
165-
StubCommentComposer.createGrpcServiceStubClassHeaderComments(service.name()))
166-
.setAnnotations(createClassAnnotations(service.pakkage()))
165+
StubCommentComposer.createGrpcServiceStubClassHeaderComments(
166+
service.name(), service.isDeprecated()))
167+
.setAnnotations(createClassAnnotations(service))
167168
.setScope(ScopeNode.PUBLIC)
168169
.setName(className)
169170
.setExtendsType(typeStore.get(ClassNames.getServiceStubClassName(service)))
@@ -387,11 +388,16 @@ private static Map<String, VariableExpr> createCallableClassMembers(
387388
return callableClassMembers;
388389
}
389390

390-
private static List<AnnotationNode> createClassAnnotations(String pakkage) {
391+
private static List<AnnotationNode> createClassAnnotations(Service service) {
391392
List<AnnotationNode> annotations = new ArrayList<>();
392-
if (!PackageChecker.isGaApi(pakkage)) {
393+
if (!PackageChecker.isGaApi(service.pakkage())) {
393394
annotations.add(AnnotationNode.withType(FIXED_TYPESTORE.get("BetaApi")));
394395
}
396+
397+
if (service.isDeprecated()) {
398+
annotations.add(AnnotationNode.withType(TypeNode.DEPRECATED));
399+
}
400+
395401
annotations.add(
396402
AnnotationNode.builder()
397403
.setType(FIXED_TYPESTORE.get("Generated"))

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

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ public GapicClass generate(GapicContext context, Service service) {
138138
.setHeaderCommentStatements(
139139
createClassHeaderComments(service, typeStore, resourceNames, messageTypes))
140140
.setPackageString(pakkage)
141-
.setAnnotations(createClassAnnotations(pakkage, typeStore))
141+
.setAnnotations(createClassAnnotations(service, typeStore))
142142
.setScope(ScopeNode.PUBLIC)
143143
.setName(className)
144144
.setImplementsTypes(createClassImplements(typeStore))
@@ -158,11 +158,14 @@ public GapicClass generate(GapicContext context, Service service) {
158158
return GapicClass.create(kind, classDef);
159159
}
160160

161-
private static List<AnnotationNode> createClassAnnotations(String pakkage, TypeStore typeStore) {
161+
private static List<AnnotationNode> createClassAnnotations(Service service, TypeStore typeStore) {
162162
List<AnnotationNode> annotations = new ArrayList<>();
163-
if (!PackageChecker.isGaApi(pakkage)) {
163+
if (!PackageChecker.isGaApi(service.pakkage())) {
164164
annotations.add(AnnotationNode.withType(typeStore.get("BetaApi")));
165165
}
166+
if (service.isDeprecated()) {
167+
annotations.add(AnnotationNode.withType(TypeNode.DEPRECATED));
168+
}
166169
annotations.add(
167170
AnnotationNode.builder()
168171
.setType(typeStore.get("Generated"))
@@ -544,6 +547,8 @@ private static List<MethodDefinition> createServiceMethods(
544547
messageTypes,
545548
typeStore,
546549
resourceNames);
550+
551+
// Collect data for gapic_metadata.json.
547552
grpcRpcToJavaMethodMetadata
548553
.get(method.name())
549554
.addAll(
@@ -559,23 +564,31 @@ private static List<MethodDefinition> createServiceMethods(
559564
messageTypes,
560565
typeStore,
561566
resourceNames);
567+
568+
// Collect data for gapic_metadata.json.
562569
grpcRpcToJavaMethodMetadata.get(method.name()).add(javaMethodNameFn.apply(generatedMethod));
563570
javaMethods.add(generatedMethod);
564571
}
565572
if (method.hasLro()) {
566573
MethodDefinition generatedMethod =
567574
createLroCallableMethod(service, method, typeStore, messageTypes, resourceNames);
575+
576+
// Collect data for gapic_metadata.json.
568577
grpcRpcToJavaMethodMetadata.get(method.name()).add(javaMethodNameFn.apply(generatedMethod));
569578
javaMethods.add(generatedMethod);
570579
}
571580
if (method.isPaged()) {
572581
MethodDefinition generatedMethod =
573582
createPagedCallableMethod(service, method, typeStore, messageTypes, resourceNames);
583+
584+
// Collect data for gapic_metadata.json.
574585
grpcRpcToJavaMethodMetadata.get(method.name()).add(javaMethodNameFn.apply(generatedMethod));
575586
javaMethods.add(generatedMethod);
576587
}
577588
MethodDefinition generatedMethod =
578589
createCallableMethod(service, method, typeStore, messageTypes, resourceNames);
590+
591+
// Collect data for the gapic_metadata.json file.
579592
grpcRpcToJavaMethodMetadata.get(method.name()).add(javaMethodNameFn.apply(generatedMethod));
580593
javaMethods.add(generatedMethod);
581594
}
@@ -670,6 +683,12 @@ private static List<MethodDefinition> createMethodVariants(
670683
methodVariantBuilder =
671684
methodVariantBuilder.setReturnType(methodOutputType).setReturnExpr(rpcInvocationExpr);
672685
}
686+
687+
if (method.isDeprecated()) {
688+
methodVariantBuilder =
689+
methodVariantBuilder.setAnnotations(
690+
Arrays.asList(AnnotationNode.withType(TypeNode.DEPRECATED)));
691+
}
673692
methodVariantBuilder = methodVariantBuilder.setBody(statements);
674693
javaMethods.add(methodVariantBuilder.build());
675694
}
@@ -739,6 +758,11 @@ private static MethodDefinition createMethodDefaultMethod(
739758
.setName(String.format(method.hasLro() ? "%sAsync" : "%s", methodName))
740759
.setArguments(Arrays.asList(requestArgVarExpr));
741760

761+
if (method.isDeprecated()) {
762+
methodBuilder =
763+
methodBuilder.setAnnotations(Arrays.asList(AnnotationNode.withType(TypeNode.DEPRECATED)));
764+
}
765+
742766
if (isProtoEmptyType(methodOutputType)) {
743767
methodBuilder =
744768
methodBuilder
@@ -866,7 +890,14 @@ private static MethodDefinition createCallableMethod(
866890
}
867891
}
868892

869-
return MethodDefinition.builder()
893+
MethodDefinition.Builder methodDefBuilder = MethodDefinition.builder();
894+
if (method.isDeprecated()) {
895+
methodDefBuilder =
896+
methodDefBuilder.setAnnotations(
897+
Arrays.asList(AnnotationNode.withType(TypeNode.DEPRECATED)));
898+
}
899+
900+
return methodDefBuilder
870901
.setHeaderCommentStatements(
871902
ServiceClientCommentComposer.createRpcCallableMethodHeaderComment(
872903
method, sampleCodeOpt))

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1288,7 +1288,6 @@ private static MethodDefinition createStreamingRpcTestMethod(
12881288
* @param resourceNames the resource names available for use.
12891289
* @param messageTypes the proto message types available for use.
12901290
*/
1291-
// TODO(miraleung): Reorder params.
12921291
private static MethodDefinition createRpcExceptionTestMethod(
12931292
Method method,
12941293
Service service,

0 commit comments

Comments
 (0)