aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Files/AppData/Factory.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/Files/AppData/Factory.php')
-rw-r--r--lib/private/Files/AppData/Factory.php35
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];
+ }
+}