/**
  * Merges the TYPO3.Ice settings with the current settings before calling the render() method
  *
  * @return string
  */
 public function initializeArgumentsAndRender()
 {
     $settings = $this->configurationManager->getConfiguration(ConfigurationManager::CONFIGURATION_TYPE_SETTINGS, 'TYPO3.Ice');
     if ($this->controllerContext->getRequest()->getControllerPackageKey() !== 'TYPO3.Ice') {
         $packageSettings = $this->configurationManager->getConfiguration(ConfigurationManager::CONFIGURATION_TYPE_SETTINGS, $this->controllerContext->getRequest()->getControllerPackageKey());
         if (!empty($packageSettings['extendIceSettings'])) {
             $settings = \TYPO3\Flow\Utility\Arrays::arrayMergeRecursiveOverrule($settings, $packageSettings);
         } else {
             $settings = $packageSettings;
         }
     }
     if (isset($settings['projectElementTypes'])) {
         $supertypeResolver = new \TYPO3\Ice\Utility\SupertypeResolver($settings['projectElementTypes']);
         $settings['projectElementTypes'] = $supertypeResolver->getCompleteMergedTypeDefinition(TRUE);
     }
     $this->settings = $settings;
     return parent::initializeArgumentsAndRender();
 }