/**
  * Create a new WURFL Manager Factory
  * @param WURFL_Configuration_Config $wurflConfig
  * @param WURFL_Storage_Base $persistenceStorage
  * @param WURFL_Storage_Base $cacheStorage
  */
 public function __construct(WURFL_Configuration_Config $wurflConfig, $persistenceStorage = null, $cacheStorage = null)
 {
     $this->wurflConfig = $wurflConfig;
     WURFL_Configuration_ConfigHolder::setWURFLConfig($this->wurflConfig);
     $this->persistenceStorage = $persistenceStorage ? $persistenceStorage : WURFL_Storage_Factory::create($this->wurflConfig->persistence);
     $this->cacheStorage = $cacheStorage ? $cacheStorage : WURFL_Storage_Factory::create($this->wurflConfig->cache);
     if ($this->persistenceStorage->validSecondaryCache($this->cacheStorage)) {
         $this->persistenceStorage->setCacheStorage($this->cacheStorage);
     }
 }
 public function reload($wurflConfigurationPath)
 {
     $wurflConfig = WURFL_Configuration_ConfigFactory::create($wurflConfigurationPath);
     WURFL_Configuration_ConfigHolder::setWURFLConfig($wurflConfig);
     $cacheProvider = WURFL_Cache_CacheProviderFactory::getCacheProvider();
     $cacheProvider->clear();
     $persistenceProvider = WURFL_Xml_PersistenceProvider_PersistenceProviderManager::getPersistenceProvider();
     $persistenceProvider->setWURFLLoaded(FALSE);
     WURFL_WURFLManagerProvider::getWURFLManager($wurflConfigurationPath);
 }
 /**
  * Initiaizes the actual WURFLManager
  *
  * @param string $configurationFilePath Absolute path to the wurfl configuration file
  */
 private static function _init($configurationFilePath)
 {
     $wurflConfig = WURFL_Configuration_ConfigFactory::create($configurationFilePath);
     WURFL_Configuration_ConfigHolder::setWURFLConfig($wurflConfig);
     $wurflFileParser = new WURFL_Xml_WURFLFileParser();
     $wurflPatchFileParser = new WURFL_Xml_WURFLPatchFileParser();
     $wurflPatchManager = new WURFL_Xml_PatchManager();
     // Persistence and Cache Providers
     $persistenceProvider = WURFL_Xml_PersistenceProvider_PersistenceProviderManager::getPersistenceProvider();
     $cacheProvider = WURFL_Cache_CacheProviderFactory::getCacheProvider();
     $xmlResourceManager = new WURFL_Xml_XMLResourceManager($persistenceProvider, $wurflPatchManager, $wurflFileParser, $wurflPatchFileParser);
     $userAgentHandlerChain = WURFL_UserAgentHandlerChainFactory::create();
     $deviceRepository = new WURFL_DeviceRepository($xmlResourceManager, $userAgentHandlerChain, $persistenceProvider);
     $wurflService = new WURFL_WURFLService($deviceRepository, $userAgentHandlerChain, $cacheProvider);
     $userAgentNormalizer = new WURFL_Request_UserAgentNormalizer();
     $requestFactory = new WURFL_Request_GenericRequestFactory($userAgentNormalizer);
     self::$wurflManager = new WURFL_WURFLManager($wurflService, $requestFactory);
 }