Skip to content

Commit e4f2c39

Browse files
authored
fix: remove APIs from versions of JVM beyond 1.8 (#764)
1 parent 1579669 commit e4f2c39

File tree

1 file changed

+20
-19
lines changed

1 file changed

+20
-19
lines changed

codegen/smithy-aws-kotlin-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/protocols/endpoints/DefaultEndpointProviderExt.kt

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,11 @@ import aws.sdk.kotlin.codegen.AwsRuntimeTypes
88
import software.amazon.smithy.kotlin.codegen.core.KotlinWriter
99
import software.amazon.smithy.kotlin.codegen.core.withBlock
1010
import software.amazon.smithy.kotlin.codegen.rendering.endpoints.ExpressionRenderer
11+
import software.amazon.smithy.kotlin.codegen.utils.getOrNull
12+
import software.amazon.smithy.model.node.Node
1113
import software.amazon.smithy.model.node.ObjectNode
1214
import software.amazon.smithy.rulesengine.language.syntax.expr.Expression
15+
import java.util.*
1316

1417
val awsEndpointFunctions = mapOf(
1518
"aws.parseArn" to AwsRuntimeTypes.Endpoint.Functions.parseArn,
@@ -44,20 +47,10 @@ private fun renderAuthSchemes(writer: KotlinWriter, authSchemes: Expression, exp
4447
// encounter template strings throughout
4548

4649
writeInline("signingName = ")
47-
scheme.getStringMember("signingName").ifPresentOrElse({ node ->
48-
expressionRenderer.renderExpression(Expression.fromNode(node))
49-
write(",")
50-
},) {
51-
writeInline("null,")
52-
}
50+
renderOrElse(expressionRenderer, scheme.getStringMember("signingName"), "null")
5351

54-
writer.writeInline("disableDoubleEncoding = ")
55-
scheme.getBooleanMember("disableDoubleEncoding").ifPresentOrElse({ node ->
56-
expressionRenderer.renderExpression(Expression.fromNode(node))
57-
write(",")
58-
},) {
59-
writeInline("false,")
60-
}
52+
writeInline("disableDoubleEncoding = ")
53+
renderOrElse(expressionRenderer, scheme.getBooleanMember("disableDoubleEncoding"), "false")
6154

6255
when (schemeName) {
6356
"sigv4" -> renderSigV4Fields(writer, scheme, expressionRenderer)
@@ -69,14 +62,22 @@ private fun renderAuthSchemes(writer: KotlinWriter, authSchemes: Expression, exp
6962
}
7063
}
7164

65+
private fun KotlinWriter.renderOrElse(
66+
expressionRenderer: ExpressionRenderer,
67+
optionalNode: Optional<out Node>,
68+
whenNullValue: String,
69+
) {
70+
val nullableNode = optionalNode.getOrNull()
71+
when (nullableNode) {
72+
null -> writeInline(whenNullValue)
73+
else -> expressionRenderer.renderExpression(Expression.fromNode(nullableNode))
74+
}
75+
write(",")
76+
}
77+
7278
private fun renderSigV4Fields(writer: KotlinWriter, scheme: ObjectNode, expressionRenderer: ExpressionRenderer) {
7379
writer.writeInline("signingRegion = ")
74-
scheme.getStringMember("signingRegion").ifPresentOrElse({
75-
expressionRenderer.renderExpression(Expression.fromNode(it))
76-
writer.write(",")
77-
},) {
78-
writer.write("null,")
79-
}
80+
writer.renderOrElse(expressionRenderer, scheme.getStringMember("signingRegion"), "null")
8081
}
8182

8283
private fun renderSigV4AFields(writer: KotlinWriter, scheme: ObjectNode, expressionRenderer: ExpressionRenderer) {

0 commit comments

Comments
 (0)