in codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesClientTestSpec.java [544:628]
private CodeBlock setClientParams(String builderName, Map<String, TreeNode> params) {
CodeBlock.Builder b = CodeBlock.builder();
if (hasS3ConfigParams(params)) {
CodeBlock.Builder config = CodeBlock.builder();
config.add("$T.builder()", configClass());
params.forEach((n, v) -> {
if (!endpointRulesSpecUtils.isDeclaredParam(n)) {
return;
}
CodeBlock valueLiteral = endpointRulesSpecUtils.treeNodeToLiteral(v);
switch (n) {
case "UseDualStack":
config.add(".dualstackEnabled($L)", valueLiteral);
break;
case "Accelerate":
config.add(".accelerateModeEnabled($L)", valueLiteral);
break;
case "ForcePathStyle":
config.add(".pathStyleAccessEnabled($L)", valueLiteral);
break;
case "UseArnRegion":
config.add(".useArnRegionEnabled($L)", valueLiteral);
break;
case "DisableMultiRegionAccessPoints":
config.add(".multiRegionEnabled(!$L)", valueLiteral);
break;
default:
break;
}
});
config.add(".build()");
b.addStatement("$N.serviceConfiguration($L)", builderName, config.build());
}
params.forEach((n, v) -> {
if (!isClientParam(n)) {
return;
}
ParameterModel paramModel = param(n);
CodeBlock valueLiteral = endpointRulesSpecUtils.treeNodeToLiteral(v);
if (paramModel.getBuiltInEnum() != null) {
switch (paramModel.getBuiltInEnum()) {
case AWS_REGION:
b.addStatement("$N.region($T.of($L))", builderName, Region.class, valueLiteral);
break;
case AWS_USE_DUAL_STACK:
// If this is S3, it will be set in S3Configuration instead
if (!hasS3ConfigParams(params)) {
b.addStatement("$N.dualstackEnabled($L)", builderName, valueLiteral);
}
break;
case AWS_USE_FIPS:
b.addStatement("$N.fipsEnabled($L)", builderName, valueLiteral);
break;
case SDK_ENDPOINT:
b.addStatement("$N.endpointOverride($T.create($L))", builderName, URI.class, valueLiteral);
break;
case AWS_S3_USE_GLOBAL_ENDPOINT:
b.addStatement("$T.setProperty($L, $L ? \"global\" : \"regional\")", System.class,
s3RegionalEndpointSystemPropertyCode(), valueLiteral);
break;
case AWS_AUTH_ACCOUNT_ID_ENDPOINT_MODE:
b.addStatement("$N.accountIdEndpointMode($T.fromValue($L))", builderName, AccountIdEndpointMode.class,
valueLiteral);
break;
default:
break;
}
} else {
String setterName = endpointRulesSpecUtils.clientContextParamMethodName(n);
b.addStatement("$N.$N($L)", builderName, setterName, valueLiteral);
}
});
return b.build();
}