Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,13 @@ class RestXmlParserGenerator(
writer: KotlinWriter
): XmlSerdeDescriptorGenerator = RestXmlSerdeDescriptorGenerator(ctx.toRenderingContext(protocolGenerator, shape, writer), members)

override fun payloadDeserializer(ctx: ProtocolGenerator.GenerationContext, member: MemberShape): Symbol {
return if (member.hasTrait<XmlNameTrait>()) {
override fun payloadDeserializer(ctx: ProtocolGenerator.GenerationContext, shape: Shape): Symbol {
return if (shape.hasTrait<XmlNameTrait>() && shape is MemberShape) {
// can't delegate, have to generate a dedicated deserializer because the member xml name is different
// from the name of the target shape
explicitBoundStructureDeserializer(ctx, member)
explicitBoundStructureDeserializer(ctx, shape)
} else {
super.payloadDeserializer(ctx, member)
super.payloadDeserializer(ctx, shape)
}
}

Expand Down Expand Up @@ -116,13 +116,13 @@ class RestXmlSerializerGenerator(
writer: KotlinWriter
): XmlSerdeDescriptorGenerator = RestXmlSerdeDescriptorGenerator(ctx.toRenderingContext(protocolGenerator, shape, writer), members)

override fun payloadSerializer(ctx: ProtocolGenerator.GenerationContext, member: MemberShape): Symbol {
return if (member.hasTrait<XmlNameTrait>()) {
override fun payloadSerializer(ctx: ProtocolGenerator.GenerationContext, shape: Shape): Symbol {
return if (shape.hasTrait<XmlNameTrait>() && shape is MemberShape) {
// can't delegate, have to generate a dedicated serializer because the member xml name is different
// from the name of the target shape
explicitBoundStructureSerializer(ctx, member)
explicitBoundStructureSerializer(ctx, shape)
} else {
super.payloadSerializer(ctx, member)
super.payloadSerializer(ctx, shape)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import software.amazon.smithy.kotlin.codegen.core.RuntimeTypes
import software.amazon.smithy.kotlin.codegen.core.withBlock
import software.amazon.smithy.kotlin.codegen.model.expectShape
import software.amazon.smithy.kotlin.codegen.model.knowledge.SerdeIndex
import software.amazon.smithy.kotlin.codegen.model.targetOrSelf
import software.amazon.smithy.kotlin.codegen.rendering.protocol.HttpBindingResolver
import software.amazon.smithy.kotlin.codegen.rendering.protocol.ProtocolGenerator
import software.amazon.smithy.kotlin.codegen.rendering.protocol.ProtocolMiddleware
Expand Down Expand Up @@ -158,10 +159,10 @@ abstract class AbstractQueryFormUrlSerializerGenerator(
}
}

override fun payloadSerializer(ctx: ProtocolGenerator.GenerationContext, member: MemberShape): Symbol {
override fun payloadSerializer(ctx: ProtocolGenerator.GenerationContext, shape: Shape): Symbol {
// re-use document serializer (for the target shape!)
val target = ctx.model.expectShape(member.target)
val symbol = ctx.symbolProvider.toSymbol(member)
val target = shape.targetOrSelf(ctx.model)
val symbol = ctx.symbolProvider.toSymbol(shape)
val serializeFn = documentSerializer(ctx, target)
val fnName = symbol.payloadSerializerName()
return symbol.payloadSerializer(ctx.settings) { writer ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ class AwsHttpBindingProtocolGeneratorTest {
error("Unneeded for test")
}

override fun payloadDeserializer(ctx: ProtocolGenerator.GenerationContext, member: MemberShape): Symbol {
override fun payloadDeserializer(ctx: ProtocolGenerator.GenerationContext, shape: Shape): Symbol {
error("Unneeded for test")
}
}
Expand All @@ -112,7 +112,7 @@ class AwsHttpBindingProtocolGeneratorTest {
error("Unneeded for test")
}

override fun payloadSerializer(ctx: ProtocolGenerator.GenerationContext, member: MemberShape): Symbol {
override fun payloadSerializer(ctx: ProtocolGenerator.GenerationContext, shape: Shape): Symbol {
error("Unneeded for test")
}
}
Expand Down