aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Files/AppData/Factory.php
blob: 38b73f370b88836544c4d7a3e1465740e682feca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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];
	}
}