Skip to content

Commit b956a40

Browse files
committed
Use Function Interface
1 parent 6bb57b8 commit b956a40

File tree

2 files changed

+165
-57
lines changed

2 files changed

+165
-57
lines changed

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

+22-20
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import java.util.Arrays;
4242
import java.util.List;
4343
import java.util.Map;
44+
import java.util.function.Function;
4445
import java.util.stream.Collectors;
4546
import java.util.stream.IntStream;
4647

@@ -229,7 +230,7 @@ static TryCatchStatement composeUnaryRpcMethodSampleCode(
229230
List<Expr> rpcMethodArgDefaultValueExprs =
230231
createRpcMethodArgumentDefaultValueExprs(arguments, resourceNames);
231232
List<Expr> bodyExprs =
232-
createMethodArgAssignmentWithDefaultValue(
233+
createAssignmentsForVarExprsWithValueExprs(
233234
rpcMethodArgVarExprs, rpcMethodArgDefaultValueExprs);
234235
// Invoke current method based on return type.
235236
// e.g. if return void, echoClient.echo(..); or,
@@ -288,7 +289,7 @@ static TryCatchStatement composeUnaryPagedRpcMethodSampleCode(
288289
List<Expr> rpcMethodArgDefaultValueExprs =
289290
createRpcMethodArgumentDefaultValueExprs(arguments, resourceNames);
290291
List<Expr> bodyExprs =
291-
createMethodArgAssignmentWithDefaultValue(
292+
createAssignmentsForVarExprsWithValueExprs(
292293
rpcMethodArgVarExprs, rpcMethodArgDefaultValueExprs);
293294
// For loop paged response item on iterateAll method.
294295
// e.g. for (LogEntry element : loggingServiceV2Client.ListLogs(parent).iterateAll()) {
@@ -354,37 +355,38 @@ private static List<Expr> createRpcMethodArgumentDefaultValueExprs(
354355
List<MethodArgument> arguments, Map<String, ResourceName> resourceNames) {
355356
List<ResourceName> resourceNameList =
356357
resourceNames.values().stream().collect(Collectors.toList());
358+
Function<MethodArgument, MethodInvocationExpr> stringResourceNameDefaultValueExpr =
359+
arg ->
360+
MethodInvocationExpr.builder()
361+
.setExprReferenceExpr(
362+
DefaultValueComposer.createDefaultValue(
363+
resourceNames.get(arg.field().resourceReference().resourceTypeString()),
364+
resourceNameList,
365+
arg.field().name()))
366+
.setMethodName("toString")
367+
.setReturnType(TypeNode.STRING)
368+
.build();
357369
return arguments.stream()
358370
.map(
359371
arg ->
360372
!isStringTypedResourceName(arg, resourceNames)
361373
? DefaultValueComposer.createDefaultValue(arg, resourceNames)
362-
: MethodInvocationExpr.builder()
363-
.setExprReferenceExpr(
364-
DefaultValueComposer.createDefaultValue(
365-
resourceNames.get(
366-
arg.field().resourceReference().resourceTypeString()),
367-
resourceNameList,
368-
arg.field().name()))
369-
.setMethodName("toString")
370-
.setReturnType(TypeNode.STRING)
371-
.build())
374+
: stringResourceNameDefaultValueExpr.apply(arg))
372375
.collect(Collectors.toList());
373376
}
374377

375-
// Create a list of assignment expressions for method argument with its default value.
376-
private static List<Expr> createMethodArgAssignmentWithDefaultValue(
377-
List<VariableExpr> rpcMethodArgVarExprs, List<Expr> rpcMethodArgDefaultValueExprs) {
378+
// Create a list of assignment expressions for variable expr with value expr.
379+
private static List<Expr> createAssignmentsForVarExprsWithValueExprs(
380+
List<VariableExpr> variableExprs, List<Expr> valueExprs) {
378381
Preconditions.checkState(
379-
rpcMethodArgVarExprs.size() == rpcMethodArgDefaultValueExprs.size(),
382+
variableExprs.size() == valueExprs.size(),
380383
"Expected the number of method arguments to match the number of default values.");
381-
return IntStream.range(0, rpcMethodArgVarExprs.size())
384+
return IntStream.range(0, variableExprs.size())
382385
.mapToObj(
383386
i ->
384387
AssignmentExpr.builder()
385-
.setVariableExpr(
386-
rpcMethodArgVarExprs.get(i).toBuilder().setIsDecl(true).build())
387-
.setValueExpr(rpcMethodArgDefaultValueExprs.get(i))
388+
.setVariableExpr(variableExprs.get(i).toBuilder().setIsDecl(true).build())
389+
.setValueExpr(valueExprs.get(i))
388390
.build())
389391
.collect(Collectors.toList());
390392
}

0 commit comments

Comments
 (0)