Added config.php option to replace the default implementation of system tag manager and system tag object mapper. Also adjusted the comments manager factory to inject the server containerremotes/origin/comments-markallread-dav
parent
dd733d8925
commit
899f9bd113
@ -0,0 +1,78 @@ |
||||
<?php |
||||
/** |
||||
* @author Vincent Petry <pvince81@owncloud.com> |
||||
* |
||||
* @copyright Copyright (c) 2016, ownCloud, Inc. |
||||
* @license AGPL-3.0 |
||||
* |
||||
* This code is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU Affero General Public License, version 3, |
||||
* as published by the Free Software Foundation. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU Affero General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Affero General Public License, version 3, |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/> |
||||
* |
||||
*/ |
||||
namespace OC\SystemTag; |
||||
|
||||
use OCP\SystemTag\ISystemTagManagerFactory; |
||||
use OCP\SystemTag\ISystemTagManager; |
||||
use OC\SystemTag\SystemTagManager; |
||||
use OC\SystemTag\SystemTagObjectMapper; |
||||
use OCP\IServerContainer; |
||||
|
||||
/** |
||||
* Default factory class for system tag managers |
||||
* |
||||
* @package OCP\SystemTag |
||||
* @since 9.0.0 |
||||
*/ |
||||
class ManagerFactory implements ISystemTagManagerFactory { |
||||
|
||||
/** |
||||
* Server container |
||||
* |
||||
* @var IServerContainer |
||||
*/ |
||||
private $serverContainer; |
||||
|
||||
/** |
||||
* Constructor for the system tag manager factory |
||||
* |
||||
* @param IServerContainer $serverContainer server container |
||||
*/ |
||||
public function __construct(IServerContainer $serverContainer) { |
||||
$this->serverContainer = $serverContainer; |
||||
} |
||||
|
||||
/** |
||||
* Creates and returns an instance of the system tag manager |
||||
* |
||||
* @return ISystemTagManager |
||||
* @since 9.0.0 |
||||
*/ |
||||
public function getManager() { |
||||
return new SystemTagManager( |
||||
$this->serverContainer->getDatabaseConnection() |
||||
); |
||||
} |
||||
|
||||
/** |
||||
* Creates and returns an instance of the system tag object |
||||
* mapper |
||||
* |
||||
* @return ISystemTagObjectMapper |
||||
* @since 9.0.0 |
||||
*/ |
||||
public function getObjectMapper() { |
||||
return new SystemTagObjectMapper( |
||||
$this->serverContainer->getDatabaseConnection(), |
||||
$this->getManager() |
||||
); |
||||
} |
||||
} |
@ -0,0 +1,59 @@ |
||||
<?php |
||||
/** |
||||
* @author Vincent Petry <pvince81@owncloud.com> |
||||
* |
||||
* @copyright Copyright (c) 2016, ownCloud, Inc. |
||||
* @license AGPL-3.0 |
||||
* |
||||
* This code is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU Affero General Public License, version 3, |
||||
* as published by the Free Software Foundation. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU Affero General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Affero General Public License, version 3, |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/> |
||||
* |
||||
*/ |
||||
namespace OCP\SystemTag; |
||||
|
||||
use OCP\IServerContainer; |
||||
|
||||
/** |
||||
* Interface ISystemTagManagerFactory |
||||
* |
||||
* Factory interface for system tag managers |
||||
* |
||||
* @package OCP\SystemTag |
||||
* @since 9.0.0 |
||||
*/ |
||||
interface ISystemTagManagerFactory { |
||||
|
||||
/** |
||||
* Constructor for the system tag manager factory |
||||
* |
||||
* @param IServerContainer $serverContainer server container |
||||
* @since 9.0.0 |
||||
*/ |
||||
public function __construct(IServerContainer $serverContainer); |
||||
|
||||
/** |
||||
* creates and returns an instance of the system tag manager |
||||
* |
||||
* @return ISystemTagManager |
||||
* @since 9.0.0 |
||||
*/ |
||||
public function getManager(); |
||||
|
||||
/** |
||||
* creates and returns an instance of the system tag object |
||||
* mapper |
||||
* |
||||
* @return ISystemTagObjectMapper |
||||
* @since 9.0.0 |
||||
*/ |
||||
public function getObjectMapper(); |
||||
} |
Loading…
Reference in new issue