in codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/ec2query/httpResponse/AWSEc2QueryHttpResponseTraitWithoutPayload.kt [30:64]
override fun render() {
val bodyMembers = responseBindings.filter { it.location == HttpBinding.Location.DOCUMENT }
val bodyMembersWithoutQueryTrait = bodyMembers
.filter { !it.member.hasTrait(HttpQueryTrait::class.java) }
.map { ctx.symbolProvider.toMemberName(it.member) }
.toMutableSet()
if (bodyMembersWithoutQueryTrait.isNotEmpty()) {
writer.write("if case .stream(let reader) = httpResponse.body,")
writer.indent()
writer.write("let responseDecoder = decoder {")
writer.write("let data = reader.toBytes().toData()")
renderWithoutErrorResponseContainer(outputShapeName, bodyMembersWithoutQueryTrait)
writer.dedent()
writer.write("} else {")
writer.indent()
bodyMembers.sortedBy { it.memberName }.forEach {
val memberName = ctx.symbolProvider.toMemberName(it.member)
val type = ctx.model.expectShape(it.member.target)
val value = if (ctx.symbolProvider.toSymbol(it.member).isBoxed()) "nil" else {
when (type) {
is IntegerShape, is ByteShape, is ShortShape, is LongShape -> 0
is FloatShape, is DoubleShape -> 0.0
is BooleanShape -> false
else -> "nil"
}
}
writer.write("self.$memberName = $value")
}
writer.dedent()
writer.write("}")
}
}