Skip to content

Commit 2ae3246

Browse files
committed
refactor logic to use switch case
1 parent 7c4bde0 commit 2ae3246

File tree

372 files changed

+4059
-142110
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

372 files changed

+4059
-142110
lines changed

codegen/smithy-aws-go-codegen/src/main/java/software/amazon/smithy/aws/go/codegen/JsonShapeDeserVisitor.java

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -181,20 +181,8 @@ protected void deserializeStructure(GenerationContext context, StructureShape sh
181181
});
182182
});
183183

184-
boolean isErrorStructure = shape.hasTrait(ErrorTrait.class);
185-
if (isErrorStructure) {
186-
writer.write("var errorMessage string");
187-
}
188-
189184
// Iterate through the decoder. The member visitor will handle popping tokens.
190185
writer.openBlock("for key, value := range shape {", "}", () -> {
191-
if (isErrorStructure) {
192-
writer.write("keyLower := strings.ToLower(key)");
193-
writer.write("if keyLower == \"message\" {");
194-
writer.write(" errorMessage = value.(string)");
195-
writer.write(" continue");
196-
writer.write("}");
197-
}
198186

199187
writer.openBlock("switch key {", "}", () -> {
200188
Set<MemberShape> members = new TreeSet<>(shape.members());
@@ -204,10 +192,16 @@ protected void deserializeStructure(GenerationContext context, StructureShape sh
204192
}
205193
String memberName = symbolProvider.toMemberName(member);
206194
String serializedMemberName = getSerializedMemberName(member);
207-
writer.openBlock("case $S:", "", serializedMemberName, () -> {
208-
String dest = "sv." + memberName;
209-
context.getModel().expectShape(member.getTarget()).accept(getMemberDeserVisitor(member, dest));
210-
});
195+
196+
boolean isErrorStructure = shape.hasTrait(ErrorTrait.class);
197+
198+
if(isErrorStructure && memberName.equals("Message")){
199+
writer.write("case \"message\", \"Message\":");
200+
} else {
201+
writer.write("case $S:",serializedMemberName);
202+
}
203+
String dest = "sv." + memberName;
204+
context.getModel().expectShape(member.getTarget()).accept(getMemberDeserVisitor(member, dest));
211205
}
212206

213207
writer.openBlock("default:", "", () -> {
@@ -216,11 +210,6 @@ protected void deserializeStructure(GenerationContext context, StructureShape sh
216210
});
217211
});
218212

219-
if (isErrorStructure) {
220-
writer.write("if errorMessage != \"\" {");
221-
writer.write(" sv.Message = &errorMessage");
222-
writer.write("}");
223-
}
224213

225214
writer.write("*v = sv");
226215
writer.write("return nil");

0 commit comments

Comments
 (0)