/**
  * @param $config
  * @param ContainerBuilder $container
  * @param $class
  * @param $classContainerParameter
  */
 protected function injectClassManagerService($config, ContainerBuilder $container, $class, $classContainerParameter)
 {
     $id = $this->containerIdGenerator->getManagerServiceId($class);
     if ($container->hasDefinition($id)) {
         return;
     }
     $managerClass = $this->containerIdGenerator->guessManagerClass($class, $config['dir']);
     if (!class_exists($managerClass) && $config['auto']) {
         $def = $this->definitionFactory->createManagerByFactoryDefinition($classContainerParameter);
         $container->setDefinition($id, $def);
     } elseif (class_exists($managerClass)) {
         $reflClass = $this->reflectionFactory->createReflectionClass($managerClass);
         if ($reflClass->isAbstract() || !$reflClass->isSubclassOf('Knd\\Bundle\\RadBundle\\Manager\\Manager')) {
             return;
         }
         $classContainerParameter = $this->containerIdGenerator->getContainerParameter($class);
         $managerClassContainerParameter = $this->injectClassContainerParameter($container, $managerClass);
         $def = $this->definitionFactory->createManagerDefinition($classContainerParameter, $managerClassContainerParameter);
         $container->setDefinition($id, $def);
     }
 }