|
41 | 41 | import java.util.Arrays;
|
42 | 42 | import java.util.List;
|
43 | 43 | import java.util.Map;
|
| 44 | +import java.util.function.Function; |
44 | 45 | import java.util.stream.Collectors;
|
45 | 46 | import java.util.stream.IntStream;
|
46 | 47 |
|
@@ -229,7 +230,7 @@ static TryCatchStatement composeUnaryRpcMethodSampleCode(
|
229 | 230 | List<Expr> rpcMethodArgDefaultValueExprs =
|
230 | 231 | createRpcMethodArgumentDefaultValueExprs(arguments, resourceNames);
|
231 | 232 | List<Expr> bodyExprs =
|
232 |
| - createMethodArgAssignmentWithDefaultValue( |
| 233 | + createAssignmentsForVarExprsWithValueExprs( |
233 | 234 | rpcMethodArgVarExprs, rpcMethodArgDefaultValueExprs);
|
234 | 235 | // Invoke current method based on return type.
|
235 | 236 | // e.g. if return void, echoClient.echo(..); or,
|
@@ -288,7 +289,7 @@ static TryCatchStatement composeUnaryPagedRpcMethodSampleCode(
|
288 | 289 | List<Expr> rpcMethodArgDefaultValueExprs =
|
289 | 290 | createRpcMethodArgumentDefaultValueExprs(arguments, resourceNames);
|
290 | 291 | List<Expr> bodyExprs =
|
291 |
| - createMethodArgAssignmentWithDefaultValue( |
| 292 | + createAssignmentsForVarExprsWithValueExprs( |
292 | 293 | rpcMethodArgVarExprs, rpcMethodArgDefaultValueExprs);
|
293 | 294 | // For loop paged response item on iterateAll method.
|
294 | 295 | // e.g. for (LogEntry element : loggingServiceV2Client.ListLogs(parent).iterateAll()) {
|
@@ -354,37 +355,38 @@ private static List<Expr> createRpcMethodArgumentDefaultValueExprs(
|
354 | 355 | List<MethodArgument> arguments, Map<String, ResourceName> resourceNames) {
|
355 | 356 | List<ResourceName> resourceNameList =
|
356 | 357 | 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(); |
357 | 369 | return arguments.stream()
|
358 | 370 | .map(
|
359 | 371 | arg ->
|
360 | 372 | !isStringTypedResourceName(arg, resourceNames)
|
361 | 373 | ? 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)) |
372 | 375 | .collect(Collectors.toList());
|
373 | 376 | }
|
374 | 377 |
|
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) { |
378 | 381 | Preconditions.checkState(
|
379 |
| - rpcMethodArgVarExprs.size() == rpcMethodArgDefaultValueExprs.size(), |
| 382 | + variableExprs.size() == valueExprs.size(), |
380 | 383 | "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()) |
382 | 385 | .mapToObj(
|
383 | 386 | i ->
|
384 | 387 | 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)) |
388 | 390 | .build())
|
389 | 391 | .collect(Collectors.toList());
|
390 | 392 | }
|
|
0 commit comments