/**
  * Returns the specified configuration.
  * The actual configuration will be merged from different sources in a defined order.
  *
  * Note that this is a low level method and only makes sense to be used by Extbase internally.
  *
  * @param string $configurationType The kind of configuration to fetch - must be one of the CONFIGURATION_TYPE_* constants
  * @param string $extensionName if specified, the configuration for the given extension will be returned.
  * @param string $pluginName if specified, the configuration for the given plugin will be returned.
  * @return array The configuration
  */
 public function getConfiguration($configurationType, $extensionName = NULL, $pluginName = NULL)
 {
     switch ($configurationType) {
         case self::CONFIGURATION_TYPE_SETTINGS:
             $configuration = $this->concreteConfigurationManager->getConfiguration($extensionName, $pluginName);
             return $configuration['settings'];
         case self::CONFIGURATION_TYPE_FRAMEWORK:
             return $this->concreteConfigurationManager->getConfiguration($extensionName, $pluginName);
         case self::CONFIGURATION_TYPE_FULL_TYPOSCRIPT:
             return $this->concreteConfigurationManager->getTypoScriptSetup();
         default:
             throw new Tx_Extbase_Configuration_Exception_InvalidConfigurationTypeException('Invalid configuration type "' . $configurationType . '"', 1206031879);
     }
 }