summaryrefslogtreecommitdiffstats
path: root/lib/files/mount/mount.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/files/mount/mount.php')
-rw-r--r--lib/files/mount/mount.php27
1 files changed, 19 insertions, 8 deletions
diff --git a/lib/files/mount/mount.php b/lib/files/mount/mount.php
index 69b8285ab4c..17b0055ee84 100644
--- a/lib/files/mount/mount.php
+++ b/lib/files/mount/mount.php
@@ -9,10 +9,10 @@
namespace OC\Files\Mount;
use \OC\Files\Filesystem;
+use OC\Files\Storage\Loader;
+use OC\Files\Storage\Storage;
class Mount {
-
-
/**
* @var \OC\Files\Storage\Storage $storage
*/
@@ -23,19 +23,30 @@ class Mount {
private $mountPoint;
/**
- * @param string|\OC\Files\Storage\Storage $storage
+ * @var \OC\Files\Storage\Loader $loader
+ */
+ private $loader;
+
+ /**
+ * @param string | \OC\Files\Storage\Storage $storage
* @param string $mountpoint
- * @param array $arguments (optional)
+ * @param array $arguments (optional)\
+ * @param \OC\Files\Storage\Loader $loader
*/
- public function __construct($storage, $mountpoint, $arguments = null) {
+ public function __construct($storage, $mountpoint, $arguments = null, $loader = null) {
if (is_null($arguments)) {
$arguments = array();
}
+ if (is_null($loader)) {
+ $this->loader = new Loader();
+ } else {
+ $this->loader = $loader;
+ }
$mountpoint = $this->formatPath($mountpoint);
- if ($storage instanceof \OC\Files\Storage\Storage) {
+ if ($storage instanceof Storage) {
$this->class = get_class($storage);
- $this->storage = $storage;
+ $this->storage = $this->loader->wrap($mountpoint, $storage);
} else {
// Update old classes to new namespace
if (strpos($storage, 'OC_Filestorage_') !== false) {
@@ -62,7 +73,7 @@ class Mount {
private function createStorage() {
if (class_exists($this->class)) {
try {
- return new $this->class($this->arguments);
+ return $this->loader->load($this->mountPoint, $this->class, $this->arguments);
} catch (\Exception $exception) {
\OC_Log::write('core', $exception->getMessage(), \OC_Log::ERROR);
return null;