* @category Horde * @copyright 2010-2017 Horde LLC * @license http://www.horde.org/licenses/gpl GPL * @package IMP */ class IMP_Factory_Quota extends Horde_Core_Factory_Injector { /** * Return the IMP_Quota instance. * * @return IMP_Quota The singleton instance. * @throws IMP_Exception */ public function create(Horde_Injector $injector) { $imap_ob = $injector->getInstance('IMP_Factory_Imap')->create(); $qparams = $imap_ob->config->quota; if (!isset($qparams['driver'])) { throw new IMP_Exception('Quota config missing driver parameter.'); } $driver = $qparams['driver']; $params = isset($qparams['params']) ? $qparams['params'] : array(); $params['username'] = $imap_ob->getParam('username'); switch (Horde_String::lower($driver)) { case 'imap': $params['imap_ob'] = $imap_ob; break; } $class = $this->_getDriverName($driver, 'IMP_Quota'); return new $class($params); } }