| Conditions | 5 | 
| Paths | 9 | 
| Total Lines | 22 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 0 | ||
| 1 | <?php  | 
            ||
| 14 | public function castValue($value, array $allowedTypes)  | 
            ||
| 15 |     { | 
            ||
| 16 | $castTo = null;  | 
            ||
| 17 | |||
| 18 |         foreach ($allowedTypes as $type) { | 
            ||
| 19 |             if (! is_subclass_of($type, DataTransferObject::class)) { | 
            ||
| 20 | continue;  | 
            ||
| 21 | }  | 
            ||
| 22 | |||
| 23 | $castTo = $type;  | 
            ||
| 24 | |||
| 25 | break;  | 
            ||
| 26 | }  | 
            ||
| 27 | |||
| 28 |         if (! $castTo) { | 
            ||
| 29 | return $value;  | 
            ||
| 30 | }  | 
            ||
| 31 | |||
| 32 | return (method_exists($castTo, 'fromRequest'))  | 
            ||
| 33 | ? $castTo::fromRequest($value)  | 
            ||
| 34 | : new $castTo($value);  | 
            ||
| 35 | }  | 
            ||
| 36 | |||
| 91 |