| Total Complexity | 5 | 
| Total Lines | 27 | 
| Duplicated Lines | 0 % | 
| Changes | 1 | ||
| Bugs | 0 | Features | 0 | 
| 1 | <?php  | 
            ||
| 9 | class UpcasterChain implements Upcaster  | 
            ||
| 10 | { | 
            ||
| 11 | /**  | 
            ||
| 12 | * @var Upcaster[]  | 
            ||
| 13 | */  | 
            ||
| 14 | private $upcasters;  | 
            ||
| 15 | |||
| 16 | public function __construct(Upcaster ...$upcasters)  | 
            ||
| 17 |     { | 
            ||
| 18 | $this->upcasters = $upcasters;  | 
            ||
| 19 | }  | 
            ||
| 20 | |||
| 21 | public function upcast(array $message): Generator  | 
            ||
| 22 |     { | 
            ||
| 23 | $messages = [$message];  | 
            ||
| 24 | |||
| 25 |         foreach ($this->upcasters as $upcaster) { | 
            ||
| 26 | $messages = $this->invokeUpcaster($messages, $upcaster);  | 
            ||
| 27 | }  | 
            ||
| 28 | |||
| 29 | yield from $messages;  | 
            ||
| 30 | }  | 
            ||
| 31 | |||
| 32 | private function invokeUpcaster(iterable $messages, Upcaster $upcaster): Generator  | 
            ||
| 36 | }  | 
            ||
| 37 | }  | 
            ||
| 38 | }  | 
            ||
| 39 |