|
26 | 26 | import software.amazon.awssdk.codegen.model.intermediate.OperationModel; |
27 | 27 | import software.amazon.awssdk.codegen.model.intermediate.ReturnTypeModel; |
28 | 28 | import software.amazon.awssdk.codegen.model.intermediate.ShapeModel; |
| 29 | +import software.amazon.awssdk.codegen.model.intermediate.ShapeType; |
29 | 30 | import software.amazon.awssdk.codegen.model.intermediate.VariableModel; |
30 | 31 |
|
31 | 32 | /** |
@@ -111,28 +112,27 @@ private static void addShapeAndMembers(String shapeName, |
111 | 112 | * both the key shape and the value shape of the map will be resolved, so that the |
112 | 113 | * returning list could have more than one elements. |
113 | 114 | */ |
114 | | - private static List<String> resolveMemberShapes(MemberModel member, Map<String, ShapeModel> in) { |
| 115 | + private static List<String> resolveMemberShapes(MemberModel member, Map<String, ShapeModel> modelShapes) { |
115 | 116 |
|
116 | 117 | if (member == null) { |
117 | 118 | return new LinkedList<>(); |
118 | 119 | } |
119 | 120 | if (member.getEnumType() != null) { |
120 | 121 | return Collections.singletonList(member.getEnumType()); |
121 | 122 | } else if (member.isList()) { |
122 | | - return resolveMemberShapes(member.getListModel().getListMemberModel(), in); |
| 123 | + return resolveMemberShapes(member.getListModel().getListMemberModel(), modelShapes); |
123 | 124 | } else if (member.isMap()) { |
124 | 125 | List<String> memberShapes = new LinkedList<>(); |
125 | | - memberShapes.addAll(resolveMemberShapes(member.getMapModel().getKeyModel(), in)); |
126 | | - memberShapes.addAll(resolveMemberShapes(member.getMapModel().getValueModel(), in)); |
| 126 | + memberShapes.addAll(resolveMemberShapes(member.getMapModel().getKeyModel(), modelShapes)); |
| 127 | + memberShapes.addAll(resolveMemberShapes(member.getMapModel().getValueModel(), modelShapes)); |
127 | 128 | return memberShapes; |
128 | 129 | } else if (member.isSimple()) { |
129 | 130 | // member is scalar, do nothing |
130 | 131 | return new LinkedList<>(); |
131 | 132 | } else { |
132 | | - // Find shape by C2J name, e.g., exceptions |
133 | | - String c2jName = member.getC2jShape(); |
134 | | - for (ShapeModel shape : in.values()) { |
135 | | - if (c2jName.equals(shape.getC2jName())) { |
| 133 | + // Exceptions have suffix appended, find shape by C2J name |
| 134 | + for (ShapeModel shape : modelShapes.values()) { |
| 135 | + if (shape.getShapeType().equals(ShapeType.Exception) && member.getC2jShape().equals(shape.getC2jName())) { |
136 | 136 | return Collections.singletonList(shape.getShapeName()); |
137 | 137 | } |
138 | 138 | } |
|
0 commit comments