Skip to content

Commit 09d332e

Browse files
[ProtocolTests] query nested element serialization
1 parent 3bf5dbd commit 09d332e

File tree

8 files changed

+61
-154
lines changed

8 files changed

+61
-154
lines changed

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/queryxml/QuerySerializeTemplateMacros/serializeQuerySingleElementToText.vm

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
##-------------------- serializeQuerySingleElementToText macro
2-
#macro( serializeQuerySingleElementToText $member $memberVarName )
2+
#macro( serializeQuerySingleElementToText $spaces $member $memberVarName )
33
##/* --- the actual shape member is $member; the actual shape is $member.shape; --- */
44
#if($member.shape.string)
55
StringUtils::URLEncode(${memberVarName}.c_str())##
@@ -20,8 +20,17 @@ ${memberVarName}##
2020
#elseif($member.shape.enum)
2121
${member.shape.name}Mapper::GetNameFor${member.shape.name}(${memberVarName})##
2222
#elseif($member.shape.list || $member.shape.map)
23-
/* CODEGEN FAIL: inner element is list or map */
24-
${memberVarName}##
23+
#set($macro.spaces = "${spaces} ")
24+
[&item]() {
25+
${macro.spaces} Aws::StringStream oStream;
26+
${macro.spaces} Aws::String location; // dummy for nested codegen template
27+
#if($member.shape.list)
28+
#serializeSubObjQueryListElement($macro.spaces, $member, "member", $memberVarName, false, true)
29+
#elseif($member.shape.map)
30+
#serializeSubObjQueryMapElement($macro.spaces, $member, "member", $memberVarName, false)
31+
#end
32+
${macro.spaces} return oStream.str();
33+
${spaces} } ()##
2534
#else
2635
[&]() {static_assert(false, "Code generation failure: unknown how to serialize ${member}"); return ${memberVarName}}()##
2736
#end

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/queryxml/QuerySerializeTemplateMacros/serializeRequestQueryListElement.vm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
${macro.spaces} item.OutputToStream(ss, "${macro.listLocation}.", ${varName}Count, "");
4949
#else
5050
${macro.spaces} ss << "${macro.listLocation}." << ${varName}Count << "="
51-
${macro.spaces} << #serializeQuerySingleElementToText($member.shape.listMember, "item") << "&";
51+
${macro.spaces} << #serializeQuerySingleElementToText($macro.spaces, $member.shape.listMember, "item") << "&";
5252
#end
5353
${macro.spaces} ${varName}Count++;
5454
${macro.spaces}}

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/queryxml/QuerySerializeTemplateMacros/serializeRequestQueryMapElement.vm

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -28,38 +28,22 @@
2828
#else
2929
#if($member.shape.double)
3030
##avoiding diff on generation
31-
${spaces} << #serializeQuerySingleElementToText($member.shape.mapKey, "item.first") << "&";
31+
${spaces} << #serializeQuerySingleElementToText($spaces, $member.shape.mapKey, "item.first") << "&";
3232
#else
33-
${spaces} << #serializeQuerySingleElementToText($member.shape.mapKey, "item.first") << "&";
33+
${spaces} << #serializeQuerySingleElementToText($spaces, $member.shape.mapKey, "item.first") << "&";
3434
#end
3535
#end
3636
## --- MAP VALUE ---
3737
#if($member.shape.mapValue.shape.structure)
3838
${spaces} item.second.OutputToStream(ss, "${macro.mapLocationName}.", ${macro.varName}Count, ".${macro.valueLocationName}");
3939
#else
40-
${spaces} ss << "${macro.mapLocationName}." << ${macro.varName}Count << ".${macro.valueLocationName}="
41-
${spaces} << #serializeQuerySingleElementToText($member.shape.mapValue, "item.second") << "&";
40+
#set($macro.equals='=')
41+
#if($member.shape.mapValue.shape.list || $member.shape.mapValue.shape.map)
42+
#set($macro.equals='')
4243
#end
43-
#if(false)
44-
#if(!$member.shape.mapValue.shape.structure)
45-
${spaces} ss << "${macro.mapLocationName}." << ${macro.varName}Count << ".${macro.valueLocationName}="
44+
${spaces} ss << "${macro.mapLocationName}." << ${macro.varName}Count << ".${macro.valueLocationName}${macro.equals}"
45+
${spaces} << #serializeQuerySingleElementToText($spaces, $member.shape.mapValue, "item.second") << "&";
4646
#end
47-
#if($member.shape.mapValue.shape.string)
48-
${spaces} << StringUtils::URLEncode(item.second.c_str()) << "&";
49-
#elseif($member.shape.mapValue.shape.timeStamp)
50-
${spaces} << StringUtils::URLEncode(item.second.ToGmtString(Aws::Utils::DateFormat::$CppViewHelper.computeTimestampFormatInQueryString($member.shape.mapValue.shape)).c_str()) << "&";
51-
#elseif($member.shape.mapValue.shape.enum)
52-
${spaces} << StringUtils::URLEncode(${member.shape.mapValue.shape.name}Mapper::GetNameFor${member.shape.mapValue.shape.name}(item.second).c_str()) << "&";
53-
#elseif($member.shape.mapValue.shape.structure)
54-
${spaces} item.second.OutputToStream(ss, "${macro.mapLocationName}.", ${macro.varName}Count, ".${macro.valueLocationName}");
55-
#elseif($member.shape.mapValue.shape.double)
56-
${spaces} << StringUtils::URLEncode(item.second) << "&";
57-
#elseif($member.shape.mapValue.shape.boolean)
58-
${spaces} << std::boolalpha << item.second << "&";
59-
#else
60-
${spaces} << item.second << "&";
61-
#end
62-
#end##false
6347
${spaces} ${macro.varName}Count++;
6448
${spaces}}
6549
#end##macro serializeRequestQueryMapElement

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/queryxml/QuerySerializeTemplateMacros/serializeRequestQuerySingleElement.vm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@
1616
${spaces}${memberVarName}.OutputToStream(ss, "${macro.memberLocation}");
1717
#end
1818
#else
19-
${spaces}ss << "${macro.memberLocation}=" << #serializeQuerySingleElementToText($member, $memberVarName) << "&";
19+
${spaces}ss << "${macro.memberLocation}=" << #serializeQuerySingleElementToText($spaces, $member, $memberVarName) << "&";
2020
#end
2121
#end##macro serializeRequestQuerySingleElement

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/queryxml/QuerySerializeTemplateMacros/serializeSubObjQueryListElement.vm

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,40 @@
11
##-------------------- serializeSubObjQueryListElement macro
2-
#macro( serializeSubObjQueryListElement $spaces $member $location $memberVarName )
2+
#macro( serializeSubObjQueryListElement $spaces $member $location $memberVarName $needsLocationIndex=true $isNested=false)
33
## // /* --- the actual shape member is $member; */
44
## // /* --- the actual shape is $member.shape; --- */
55
## // /* --- list member: ${member.shape.listMember} */
66
#set($macro.lowerCaseVarName = $CppViewHelper.computeVariableName($location))
7+
#set($macro.itemVarName = "item")
8+
#if($isNested)
9+
#set($macro.itemVarName = $CppViewHelper.computeVariableName("${member.shape.name}NestedItem"))
10+
#end
711
${spaces}unsigned ${macro.lowerCaseVarName}Idx = 1;
8-
${spaces}for(auto& item : ${memberVarName})
12+
${spaces}for(auto& ${macro.itemVarName} : ${memberVarName})
913
${spaces}{
1014
#if($metadata.findFirstSupportedProtocol() == "ec2")
1115
#if($member.queryName)
1216
#set($location = $member.queryName)
1317
#elseif($member.locationName)
1418
#set($location = $CppViewHelper.capitalizeFirstChar($member.locationName))
1519
#else
16-
#set($location = $memberName)
20+
###set($location = $memberName)
1721
#end
1822
#else
1923
#if($member.shape.listMember.locationName)
20-
#set($location = $memberName + "." + $member.shape.listMember.locationName)
24+
#set($location = $location + "." + $member.shape.listMember.locationName)
2125
#else
22-
#set($location = $memberName + ".member")
26+
#if(!$isNested)
27+
#set($location = $location + ".member")
28+
#end
29+
#end
2330
#end
31+
#set($macro.locationIndexValue = "index << locationValue << ")
32+
#if(!$needsLocationIndex)
33+
#set($macro.locationIndexValue = "")
2434
#end
2535
#if($member.shape.listMember.shape.structure)
2636
${spaces} Aws::StringStream ${macro.lowerCaseVarName}Ss;
27-
${spaces} ${macro.lowerCaseVarName}Ss << location << index << locationValue << ".${location}." << ${macro.lowerCaseVarName}Idx++;
37+
${spaces} ${macro.lowerCaseVarName}Ss << location << ${macro.locationIndexValue}".${location}." << ${macro.lowerCaseVarName}Idx++;
2838
${spaces} item.OutputToStream(oStream, ${macro.lowerCaseVarName}Ss.str().c_str());
2939
#elseif($member.shape.listMember.shape.string ||
3040
$member.shape.listMember.shape.timeStamp ||
@@ -34,7 +44,7 @@
3444
$member.shape.listMember.shape.primitive ||
3545
$member.shape.listMember.shape.enum)
3646
#set($listLocation = '".' + "${location}." + '"' + " << ${macro.lowerCaseVarName}Idx++ << " + '"="')
37-
${spaces} oStream << location << index << locationValue << #serializeSubObjQuerySingleElement($member.shape.listMember, $listLocation, "item") << "&";
47+
${spaces} oStream << location << ${macro.locationIndexValue}#serializeSubObjQuerySingleElement($member.shape.listMember, $listLocation, ${macro.itemVarName}) << "&";
3848
#else
3949
static_assert(false, "Code generation failure: failed to generate list element serialization of ${member.shape.listMember}");
4050
#end

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/queryxml/QuerySerializeTemplateMacros/serializeSubObjQueryMapElement.vm

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
##-------------------- serializeSubObjQueryMapElement macro
2-
#macro( serializeSubObjQueryMapElement $spaces $member $location $memberVarName )
2+
#macro( serializeSubObjQueryMapElement $spaces $member $location $memberVarName $needsLocationIndex=true )
33
#set($macro.lowerCaseVarName = $CppViewHelper.computeVariableName($location))
44
#set($macro.mapLocationName = $memberName + ".entry")
55
#if($member.locationName)
@@ -12,26 +12,34 @@
1212
#set($macro.mapValueLocationName = "value")
1313
#if($member.shape.mapValue.locationName)
1414
#set($macro.mapValueLocationName = $member.shape.mapValue.locationName)
15+
#end
16+
#set($macro.locationIndexValue = "index << locationValue << ")
17+
#if(!$needsLocationIndex)
18+
#set($macro.locationIndexValue = "")
1519
#end
1620
${spaces}unsigned ${macro.lowerCaseVarName}Idx = 1;
1721
${spaces}for(auto& item : ${memberVarName})
1822
${spaces}{
1923
## --- MAP KEY ---
2024
#if($member.shape.mapKey.shape.structure)
21-
${spaces} oStream << location << index << locationValue << ".${macro.mapLocationName}." << ${macro.lowerCaseVarName}Idx << ".${macro.mapKeyLocationName}="
25+
${spaces} oStream << location << ${macro.locationIndexValue}".${macro.mapLocationName}." << ${macro.lowerCaseVarName}Idx << ".${macro.mapKeyLocationName}="
2226
${spaces} item.first.OutputToStream(oStream, "${macro.mapLocationName}.", ${macro.lowerCaseVarName}Idx, ".${macro.mapKeyLocationName}");
2327
#else
2428
#set($mapKeyLocation = '".' + "${macro.mapLocationName}." + '"' + " << ${macro.lowerCaseVarName}Idx << " + '".' + ${macro.mapKeyLocationName} + '="' + $nl + " ${spaces} ")
25-
${spaces} oStream << location << index << locationValue << #serializeSubObjQuerySingleElement($member.shape.mapKey, $mapKeyLocation, "item.first") << "&";
29+
${spaces} oStream << location << ${macro.locationIndexValue}#serializeSubObjQuerySingleElement($member.shape.mapKey, $mapKeyLocation, "item.first") << "&";
2630
#end
2731
## --- MAP VALUE ---
2832
#if($member.shape.mapValue.shape.structure)
2933
${spaces} Aws::StringStream ${macro.lowerCaseVarName}Ss;
30-
${spaces} ${macro.lowerCaseVarName}Ss << location << index << locationValue << ".${macro.mapLocationName}." << ${macro.lowerCaseVarName}Idx << ".${macro.mapValueLocationName}";
34+
${spaces} ${macro.lowerCaseVarName}Ss << location << ${macro.locationIndexValue}".${macro.mapLocationName}." << ${macro.lowerCaseVarName}Idx << ".${macro.mapValueLocationName}";
3135
${spaces} item.second.OutputToStream(oStream, ${macro.lowerCaseVarName}Ss.str().c_str());
3236
#else
33-
#set($mapValueLocation = '".' + "${macro.mapLocationName}." + '"' + " << ${macro.lowerCaseVarName}Idx << " + '".' + ${macro.mapValueLocationName} + '="' + $nl + " ${spaces} ")
34-
${spaces} oStream << location << index << locationValue << #serializeSubObjQuerySingleElement($member.shape.mapValue, $mapValueLocation, "item.second") << "&";
37+
#set($macro.equals='="')
38+
#if($member.shape.mapValue.shape.list || $member.shape.mapValue.shape.map)
39+
#set($macro.equals='"')
40+
#end
41+
#set($mapValueLocation = '".' + "${macro.mapLocationName}." + '"' + " << ${macro.lowerCaseVarName}Idx << " + '".' + ${macro.mapValueLocationName} + $macro.equals + $nl + " ${spaces} ")
42+
${spaces} oStream << location << ${macro.locationIndexValue}#serializeSubObjQuerySingleElement($member.shape.mapValue, $mapValueLocation, "item.second") << "&";
3543
#end
3644
${spaces} ${macro.lowerCaseVarName}Idx++;
3745
${spaces}}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
##-------------------- serializeSubObjQuerySingleElement macro
22
#macro( serializeSubObjQuerySingleElement $member $location $memberVarName )
33
##/* --- the actual shape member is $member; the actual shape is $member.shape; --- */
4-
${location} << #serializeQuerySingleElementToText($member, $memberVarName)##
4+
${location} << #serializeQuerySingleElementToText("", $member, $memberVarName)##
55
#end##macro serializeSubObjQuerySingleElement

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/queryxml/QueryXmlSubObjectSource.vm

Lines changed: 8 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -77,16 +77,16 @@ void ${typeInfo.className}::OutputToStream(Aws::OStream& oStream, const char* lo
7777
#else
7878
${spaces}${memberVarName}.OutputToStream(oStream, ${lowerCaseVarName}LocationAndMemberSs.str().c_str());
7979
#end
80-
#elseif($member.shape.string || $member.shape.timeStamp || $member.shape.blob || $member.shape.double || $member.shape.boolean || $member.shape.primitive || $member.shape.enum)
80+
#elseif($member.shape.list)
81+
#serializeSubObjQueryListElement($spaces, $member, $memberName, $memberVarName)
82+
#elseif($member.shape.map)
83+
#serializeSubObjQueryMapElement($spaces, $member, $memberName, $memberVarName)
84+
#else
8185
#set($memberLocation = '".' + $memberName + '="')
8286
#if($member.shape.double)
8387
#set($spaces = "${spaces} ")##avoiding huge diff on generation
8488
#end
8589
${spaces}oStream << location << index << locationValue << #serializeSubObjQuerySingleElement($member, $memberLocation, $memberVarName) << "&";
86-
#elseif($member.shape.list)
87-
#serializeSubObjQueryListElement($spaces, $member, $memberName, $memberVarName)
88-
#elseif($member.shape.map)
89-
#serializeSubObjQueryMapElement($spaces, $member, $memberName, $memberVarName)
9090
#end
9191
#if(!$member.required)
9292
}
@@ -121,116 +121,12 @@ void ${typeInfo.className}::OutputToStream(Aws::OStream& oStream, const char* lo
121121
#else
122122
${spaces}${memberVarName}.OutputToStream(oStream, ${lowerCaseVarName}LocationAndMember.c_str());
123123
#end
124-
#elseif($member.shape.string)
125-
${spaces}oStream << location << ".${memberName}=" << StringUtils::URLEncode(${memberVarName}.c_str()) << "&";
126-
#elseif($member.shape.timeStamp)
127-
${spaces}oStream << location << ".${memberName}=" << StringUtils::URLEncode(${memberVarName}.ToGmtString(Aws::Utils::DateFormat::$CppViewHelper.computeTimestampFormatInQueryString($member.shape)).c_str()) << "&";
128-
#elseif($member.shape.blob)
129-
${spaces}oStream << location << ".${memberName}=" << StringUtils::URLEncode(HashingUtils::Base64Encode(${memberVarName}).c_str()) << "&";
130-
#elseif($member.shape.double)
131-
${spaces}oStream << location << ".${memberName}=" << StringUtils::URLEncode(${memberVarName}) << "&";
132-
#elseif($member.shape.boolean)
133-
${spaces}oStream << location << ".${memberName}=" << std::boolalpha << ${memberVarName} << "&";
134-
#elseif($member.shape.primitive)
135-
${spaces}oStream << location << ".${memberName}=" << ${memberVarName} << "&";
136-
#elseif($member.shape.enum)
137-
${spaces}oStream << location << ".${memberName}=" << ${member.shape.name}Mapper::GetNameFor${member.shape.name}(${memberVarName}) << "&";
138124
#elseif($member.shape.list)
139-
${spaces}unsigned ${lowerCaseVarName}Idx = 1;
140-
${spaces}for(auto& item : ${memberVarName})
141-
${spaces}{
142-
#if($member.queryName)
143-
#set($location = $member.queryName)
144-
#elseif($member.locationName)
145-
#set($location = $CppViewHelper.capitalizeFirstChar($member.locationName))
146-
#elseif($member.shape.listMember.queryName)
147-
#set($location = $member.shape.listMember.queryName)
148-
#elseif($member.shape.listMember.locationName)
149-
#set($location = $member.shape.listMember.locationName)
150-
#if($metadata.findFirstSupportedProtocol() == "ec2")
151-
#set($location = $CppViewHelper.capitalizeFirstChar($location))
152-
#end
153-
#elseif($metadata.findFirstSupportedProtocol() == "ec2")
154-
#set($location = $memberName)
155-
#else
156-
#set($location = $memberName + ".member")
157-
#end
158-
#if($member.shape.listMember.shape.structure)
159-
${spaces} Aws::StringStream ${lowerCaseVarName}Ss;
160-
${spaces} ${lowerCaseVarName}Ss << location << ".${location}." << ${lowerCaseVarName}Idx++;
161-
${spaces} item.OutputToStream(oStream, ${lowerCaseVarName}Ss.str().c_str());
162-
#elseif($member.shape.listMember.shape.string)
163-
${spaces} oStream << location << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << StringUtils::URLEncode(item.c_str()) << "&";
164-
#elseif($member.shape.listMember.shape.timeStamp)
165-
${spaces} oStream << location << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << StringUtils::URLEncode(item.ToGmtString(Aws::Utils::DateFormat::$CppViewHelper.computeTimestampFormatInQueryString($member.shape.listMember.shape)).c_str()) << "&";
166-
#elseif($member.shape.listMember.shape.blob)
167-
${spaces} oStream << location << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << StringUtils::URLEncode(HashingUtils::Base64Encode(item).c_str()) << "&";
168-
#elseif($member.shape.listMember.shape.double)
169-
${spaces} oStream << location << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << StringUtils::URLEncode(item) << "&";
170-
#elseif($member.shape.listMember.shape.boolean)
171-
${spaces} oStream << location << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << std::boolalpha << item << "&";
172-
#elseif($member.shape.listMember.shape.primitive)
173-
${spaces} oStream << location << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << item << "&";
174-
#elseif($member.shape.listMember.shape.enum)
175-
${spaces} oStream << location << ".${location}." << ${lowerCaseVarName}Idx++ << "=" << ${member.shape.listMember.shape.name}Mapper::GetNameFor${member.shape.listMember.shape.name}(item) << "&";
176-
#end
177-
${spaces}}
125+
#serializeSubObjQueryListElement($spaces, $member, $memberName, $memberVarName, false)
178126
#elseif($member.shape.map)
179-
#if($member.locationName)
180-
#set($mapLocationName = $member.locationName)
181-
#else
182-
#set($mapLocationName = $memberName + ".entry")
183-
#end
184-
#if($member.shape.mapKey.locationName)
185-
#set($mapKeyLocationName = $member.shape.mapKey.locationName)
186-
#else
187-
#set($mapKeyLocationName = "key")
188-
#end
189-
#if($member.shape.mapValue.locationName)
190-
#set($mapValueLocationName = $member.shape.mapValue.locationName)
191-
#else
192-
#set($mapValueLocationName = "value")
193-
#end
194-
${spaces}unsigned ${lowerCaseVarName}Idx = 1;
195-
${spaces}for(auto& item : ${memberVarName})
196-
${spaces}{
197-
${spaces} oStream << location << ".${mapLocationName}." << ${lowerCaseVarName}Idx << ".${mapKeyLocationName}="
198-
#if($member.shape.mapKey.shape.string)
199-
${spaces} << StringUtils::URLEncode(item.first.c_str()) << "&";
200-
#elseif($member.shape.mapKey.shape.timeStamp)
201-
${spaces} << StringUtils::URLEncode(item.first.ToGmtString(Aws::Utils::DateFormat::$CppViewHelper.computeTimestampFormatInQueryString($member.shape.mapKey.shape)).c_str()) << "&";
202-
#elseif($member.shape.mapKey.shape.enum)
203-
${spaces} << StringUtils::URLEncode(${member.shape.mapKey.shape.name}Mapper::GetNameFor${member.shape.mapKey.shape.name}(item.first).c_str()) << "&";
204-
#elseif($member.shape.mapKey.shape.double)
205-
${spaces} << StringUtils::URLEncode(item.first) << "&";
206-
#elseif($member.shape.mapKey.shape.boolean)
207-
${spaces} << std::boolalpha << item.first << "&";
208-
#else
209-
${spaces} << item.first << "&";
210-
#end
211-
#if(!$member.shape.mapValue.shape.structure)
212-
${spaces} oStream << location << ".${mapLocationName}." << ${lowerCaseVarName}Idx << ".${mapValueLocationName}="
213-
#end
214-
#if($member.shape.mapValue.shape.string)
215-
${spaces} << StringUtils::URLEncode(item.second.c_str()) << "&";
216-
#elseif($member.shape.mapValue.shape.timeStamp)
217-
${spaces} << StringUtils::URLEncode(item.second.ToGmtString(Aws::Utils::DateFormat::$CppViewHelper.computeTimestampFormatInQueryString($member.shape.mapValue.shape)).c_str()) << "&";
218-
#elseif($member.shape.mapValue.shape.enum)
219-
${spaces} << StringUtils::URLEncode(${member.shape.mapValue.shape.name}Mapper::GetNameFor${member.shape.mapValue.shape.name}(item.second).c_str()) << "&";
220-
#elseif($member.shape.mapValue.shape.structure)
221-
${spaces} Aws::StringStream ${lowerCaseVarName}Ss;
222-
${spaces} ${lowerCaseVarName}Ss << location << ".${mapLocationName}." << ${lowerCaseVarName}Idx << ".${mapValueLocationName}";
223-
${spaces} item.second.OutputToStream(oStream, ${lowerCaseVarName}Ss.str().c_str());
224-
#elseif($member.shape.mapValue.shape.double)
225-
${spaces} << StringUtils::URLEncode(item.second) << "&";
226-
#elseif($member.shape.mapValue.shape.boolean)
227-
${spaces} << std::boolalpha << item.second << "&";
127+
#serializeSubObjQueryMapElement($spaces, $member, $memberName, $memberVarName, false)
228128
#else
229-
${spaces} << item.second << "&";
230-
#end
231-
${spaces} ${lowerCaseVarName}Idx++;
232-
${spaces}}
233-
129+
${spaces}oStream << location << ".${memberName}=" << #serializeQuerySingleElementToText($spaces, $member, $memberVarName) << "&";
234130
#end
235131
#if(!$member.required)
236132
}

0 commit comments

Comments
 (0)