| Conditions | 7 | 
| Paths | 16 | 
| Total Lines | 32 | 
| Code Lines | 17 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 0 | ||
| 1 | <?php  | 
            ||
| 18 | public function process(ContainerBuilder $container): void  | 
            ||
| 19 |     { | 
            ||
| 20 | /** @var ChildAdminReader $annotationReader */  | 
            ||
| 21 |         $annotationReader = $container->get('sonata.annotation.reader.child_admin'); | 
            ||
| 22 | /** @var string[] $classAdmins */  | 
            ||
| 23 | $classAdmins = [];  | 
            ||
| 24 | /** @var array[] $adminParents */  | 
            ||
| 25 | $adminParents = [];  | 
            ||
| 26 | |||
| 27 |         foreach ($container->findTaggedServiceIds('sonata.admin') as $id => $tag) { | 
            ||
| 28 |             if (!($class = $this->getClass($container, $id))) { | 
            ||
| 29 | continue;  | 
            ||
| 30 | }  | 
            ||
| 31 | |||
| 32 | $classAdmins[$class] = $id;  | 
            ||
| 33 | |||
| 34 |             if ($parents = $annotationReader->getChildren(new \ReflectionClass($class))) { | 
            ||
| 35 | $adminParents[$id] = $parents;  | 
            ||
| 36 | }  | 
            ||
| 37 | }  | 
            ||
| 38 | |||
| 39 |         foreach ($adminParents as $id => $parents) { | 
            ||
| 40 |             foreach ($parents as $parent => $field) { | 
            ||
| 41 |                 if (!isset($classAdmins[$parent])) { | 
            ||
| 42 | throw new \InvalidArgumentException(sprintf(  | 
            ||
| 43 | '%s is missing Admin Class.',  | 
            ||
| 44 | $parent  | 
            ||
| 45 | ));  | 
            ||
| 46 | }  | 
            ||
| 47 | |||
| 48 | $definition = $container->getDefinition($classAdmins[$parent]);  | 
            ||
| 49 |                 $definition->addMethodCall('addChild'. [$id, $field]); | 
            ||
| 
                                                                                                    
                        
                         | 
                |||
| 50 | }  | 
            ||
| 54 |