diff options
Diffstat (limited to 'lib/private/Files/AppData/Factory.php')
-rw-r--r-- | lib/private/Files/AppData/Factory.php | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/private/Files/AppData/Factory.php b/lib/private/Files/AppData/Factory.php new file mode 100644 index 00000000000..38b73f370b8 --- /dev/null +++ b/lib/private/Files/AppData/Factory.php @@ -0,0 +1,35 @@ +<?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OC\Files\AppData; + +use OC\SystemConfig; +use OCP\Files\AppData\IAppDataFactory; +use OCP\Files\IAppData; +use OCP\Files\IRootFolder; + +class Factory implements IAppDataFactory { + private IRootFolder $rootFolder; + private SystemConfig $config; + + /** @var array<string, IAppData> */ + private array $folders = []; + + public function __construct(IRootFolder $rootFolder, + SystemConfig $systemConfig) { + $this->rootFolder = $rootFolder; + $this->config = $systemConfig; + } + + public function get(string $appId): IAppData { + if (!isset($this->folders[$appId])) { + $this->folders[$appId] = new AppData($this->rootFolder, $this->config, $appId); + } + return $this->folders[$appId]; + } +} |