|
7 | 7 | use AsyncAws\CodeGenerator\Definition\ListShape; |
8 | 8 | use AsyncAws\CodeGenerator\Definition\MapShape; |
9 | 9 | use AsyncAws\CodeGenerator\Definition\Operation; |
| 10 | +use AsyncAws\CodeGenerator\Definition\Shape; |
10 | 11 | use AsyncAws\CodeGenerator\Definition\StructureShape; |
11 | 12 | use AsyncAws\CodeGenerator\Generator\Composer\RequirementsRegistry; |
12 | 13 | use AsyncAws\CodeGenerator\Generator\EnumGenerator; |
@@ -117,16 +118,12 @@ private function generateProperties(StructureShape $shape, ClassBuilder $classBu |
117 | 118 |
|
118 | 119 | $nullable = false; |
119 | 120 | } elseif ($memberShape instanceof ListShape) { |
120 | | - $memberShape->getMember()->getShape(); |
| 121 | + $memberShape = $memberShape->getMember()->getShape(); |
121 | 122 |
|
122 | | - if (($memberShape = $memberShape->getMember()->getShape()) instanceof StructureShape) { |
123 | | - $this->objectGenerator->generate($memberShape, $forEndpoint); |
124 | | - if ($forEndpoint && 'endpoints' === $propertyName) { |
125 | | - $forEndpoint = false; |
126 | | - } |
127 | | - } |
128 | | - if (!empty($memberShape->getEnum())) { |
129 | | - $this->enumGenerator->generate($memberShape); |
| 123 | + $this->generateListShapeMemberShape($memberShape, $forEndpoint); |
| 124 | + |
| 125 | + if ($memberShape instanceof StructureShape && $forEndpoint && 'endpoints' === $propertyName) { |
| 126 | + $forEndpoint = false; |
130 | 127 | } |
131 | 128 |
|
132 | 129 | $nullable = false; |
@@ -295,4 +292,16 @@ private function generatePopulator(Operation $operation, StructureShape $shape, |
295 | 292 | $classBuilder->addUse(Response::class); |
296 | 293 | } |
297 | 294 | } |
| 295 | + |
| 296 | + private function generateListShapeMemberShape(Shape $memberShape, bool $forEndpoint): void |
| 297 | + { |
| 298 | + if ($memberShape instanceof StructureShape) { |
| 299 | + $this->objectGenerator->generate($memberShape, $forEndpoint); |
| 300 | + } elseif ($memberShape instanceof ListShape) { |
| 301 | + $this->generateListShapeMemberShape($memberShape->getMember()->getShape(), $forEndpoint); |
| 302 | + } |
| 303 | + if (!empty($memberShape->getEnum())) { |
| 304 | + $this->enumGenerator->generate($memberShape); |
| 305 | + } |
| 306 | + } |
298 | 307 | } |
0 commit comments