From 66c05093b5c56208c3f785e9cf0f5b50f5ad16d4 Mon Sep 17 00:00:00 2001
From: Joe Wang <106995533+JoeWang1127@users.noreply.github.com>
Date: Tue, 11 Apr 2023 17:50:14 +0000
Subject: [PATCH] feat: add `FunctionalInterface` annotation (#1515)
* feat: add `FunctionalInterface` annotation
* exclude internal api
* revise according to code review
* remove annotation on beta api
* remove annotation
* remove annotation
---
.../com/google/api/core/ApiAsyncFunction.java | 1 +
.../java/com/google/api/core/ApiFunction.java | 1 +
.../api/pathtemplate/ValidationException.java | 1 +
.../api/gax/httpjson/FieldsExtractor.java | 1 +
.../api/gax/rpc/BidiStreamingCallable.java | 17 +++--------------
.../api/gax/rpc/ClientStreamReadyObserver.java | 1 +
6 files changed, 8 insertions(+), 14 deletions(-)
diff --git a/api-common-java/src/main/java/com/google/api/core/ApiAsyncFunction.java b/api-common-java/src/main/java/com/google/api/core/ApiAsyncFunction.java
index deb8d48e35..cb0c8b2cb0 100644
--- a/api-common-java/src/main/java/com/google/api/core/ApiAsyncFunction.java
+++ b/api-common-java/src/main/java/com/google/api/core/ApiAsyncFunction.java
@@ -34,6 +34,7 @@
*
*
It is similar to Guava's {@code AsyncFunction}, redeclared so that Guava can be shaded.
*/
+@FunctionalInterface
public interface ApiAsyncFunction {
/**
* Returns an output Future to use in place of the given input. The output Future need not be
diff --git a/api-common-java/src/main/java/com/google/api/core/ApiFunction.java b/api-common-java/src/main/java/com/google/api/core/ApiFunction.java
index d03d934930..ca5dfb1806 100644
--- a/api-common-java/src/main/java/com/google/api/core/ApiFunction.java
+++ b/api-common-java/src/main/java/com/google/api/core/ApiFunction.java
@@ -34,6 +34,7 @@
*
*
It is similar to Guava's {@code Function}, redeclared so that Guava can be shaded.
*/
+@FunctionalInterface
public interface ApiFunction {
T apply(F input);
}
diff --git a/api-common-java/src/main/java/com/google/api/pathtemplate/ValidationException.java b/api-common-java/src/main/java/com/google/api/pathtemplate/ValidationException.java
index 3efa388f5d..2d778c5e95 100644
--- a/api-common-java/src/main/java/com/google/api/pathtemplate/ValidationException.java
+++ b/api-common-java/src/main/java/com/google/api/pathtemplate/ValidationException.java
@@ -39,6 +39,7 @@
*/
public class ValidationException extends IllegalArgumentException {
+ @FunctionalInterface
public interface Supplier {
T get();
}
diff --git a/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java b/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java
index 024e8d3d1e..aa42604596 100644
--- a/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java
+++ b/gax-java/gax-httpjson/src/main/java/com/google/api/gax/httpjson/FieldsExtractor.java
@@ -33,6 +33,7 @@
* A functional interface to be implemented for each request message to extract specific fields from
* it. For advanced usage only.
*/
+@FunctionalInterface
public interface FieldsExtractor {
ParamsT extract(RequestT request);
}
diff --git a/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java b/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java
index c973675881..38efb2da37 100644
--- a/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java
+++ b/gax-java/gax/src/main/java/com/google/api/gax/rpc/BidiStreamingCallable.java
@@ -100,15 +100,7 @@ public void call(final BidiStreamObserver bidiObserver) {
/** Listens to server responses and send requests when the network is free. */
public void call(
final BidiStreamObserver bidiObserver, ApiCallContext context) {
- internalCall(
- bidiObserver,
- new ClientStreamReadyObserver() {
- @Override
- public void onReady(ClientStream stream) {
- bidiObserver.onReady(stream);
- }
- },
- context);
+ internalCall(bidiObserver, bidiObserver, context);
}
/**
@@ -183,11 +175,8 @@ public ClientStream splitCall(
ResponseObserver responseObserver, ApiCallContext context) {
return internalCall(
responseObserver,
- new ClientStreamReadyObserver() {
- @Override
- public void onReady(ClientStream stream) {
- // no op
- }
+ stream -> {
+ // no op
},
context);
}
diff --git a/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java b/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java
index 0347524512..d0c9f32d5b 100644
--- a/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java
+++ b/gax-java/gax/src/main/java/com/google/api/gax/rpc/ClientStreamReadyObserver.java
@@ -30,6 +30,7 @@
package com.google.api.gax.rpc;
/** A callback used to report that the {@link ClientStream} is ready to send more messages. */
+@FunctionalInterface
public interface ClientStreamReadyObserver {
void onReady(ClientStream stream);
}