/**
  * Load additional definitions, like naming of parent data provider.
  *
  * This method will register an event to the populate environment event in which the parent data provider container
  * will get loaded.
  *
  * @param ContainerInterface       $container The container where the data shall be stored.
  *
  * @param BuildDataDefinitionEvent $event     The event being emitted.
  *
  * @return void
  */
 protected function loadAdditionalDefinitions(ContainerInterface $container, BuildDataDefinitionEvent $event)
 {
     if ($this->getFromDca('config/ptable')) {
         $event->getDispatcher()->addListener(sprintf('%s[%s]', PopulateEnvironmentEvent::NAME, $container->getName()), function (PopulateEnvironmentEvent $event) {
             $environment = $event->getEnvironment();
             $definition = $environment->getDataDefinition();
             $parentName = $definition->getBasicDefinition()->getParentDataProvider();
             $factory = DcGeneralFactory::deriveEmptyFromEnvironment($environment)->setContainerName($parentName);
             $parentDefinition = $factory->createContainer();
             $environment->setParentDataDefinition($parentDefinition);
         });
     }
 }