]> source.dussan.org Git - nextcloud-server.git/commitdiff
extract interfaces from fileapi for public namespace
authorRobin Appelman <icewind@owncloud.com>
Fri, 6 Sep 2013 18:38:59 +0000 (20:38 +0200)
committerRobin Appelman <icewind@owncloud.com>
Fri, 6 Sep 2013 18:38:59 +0000 (20:38 +0200)
lib/files/node/file.php
lib/files/node/folder.php
lib/files/node/node.php
lib/public/files/node/file.php [new file with mode: 0644]
lib/public/files/node/folder.php [new file with mode: 0644]
lib/public/files/node/node.php [new file with mode: 0644]

index 0ad5d68ec664e1f800a584386f6bd75638fcb0f0..f13b474aa6ca925d5e2b517d20cf535e3ba73e6f 100644 (file)
@@ -10,7 +10,7 @@ namespace OC\Files\Node;
 
 use OC\Files\NotPermittedException;
 
-class File extends Node {
+class File extends Node implements \OCP\Files\Node\File {
        /**
         * @return string
         * @throws \OC\Files\NotPermittedException
index f710ae5ae9a9140aa0fd90098c5e9e7df5d237c4..daf75d7c23ef09b39698740eff399c152e782230 100644 (file)
@@ -13,7 +13,7 @@ use OC\Files\Cache\Scanner;
 use OC\Files\NotFoundException;
 use OC\Files\NotPermittedException;
 
-class Folder extends Node {
+class Folder extends Node implements \OCP\Files\Node\Folder {
        /**
         * @param string $path path relative to the folder
         * @return string
index a1db042c25c7063d223161c6559401449e2664e9..5ee9f23161f654f4ed8ca51ce3dda9c39768775f 100644 (file)
@@ -15,7 +15,7 @@ use OC\Files\NotPermittedException;
 
 require_once 'files/exceptions.php';
 
-class Node {
+class Node implements \OCP\Files\Node\Node {
        /**
         * @var \OC\Files\View $view
         */
diff --git a/lib/public/files/node/file.php b/lib/public/files/node/file.php
new file mode 100644 (file)
index 0000000..193663f
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\Files\Node;
+
+use OC\Files\NotPermittedException;
+
+interface File extends Node {
+       /**
+        * @return string
+        * @throws \OC\Files\NotPermittedException
+        */
+       public function getContent();
+
+       /**
+        * @param string $data
+        * @throws \OC\Files\NotPermittedException
+        */
+       public function putContent($data);
+
+       /**
+        * @return string
+        */
+       public function getMimeType();
+
+       /**
+        * @param string $mode
+        * @return resource
+        * @throws \OC\Files\NotPermittedException
+        */
+       public function fopen($mode);
+
+       /**
+        * @param string $type
+        * @param bool $raw
+        * @return string
+        */
+       public function hash($type, $raw = false);
+}
diff --git a/lib/public/files/node/folder.php b/lib/public/files/node/folder.php
new file mode 100644 (file)
index 0000000..7b3ae80
--- /dev/null
@@ -0,0 +1,104 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\Files\Node;
+
+use OC\Files\Cache\Cache;
+use OC\Files\Cache\Scanner;
+use OC\Files\NotFoundException;
+use OC\Files\NotPermittedException;
+
+interface Folder extends Node {
+       /**
+        * @param string $path path relative to the folder
+        * @return string
+        * @throws \OC\Files\NotPermittedException
+        */
+       public function getFullPath($path);
+
+       /**
+        * @param string $path
+        * @throws \OC\Files\NotFoundException
+        * @return string
+        */
+       public function getRelativePath($path);
+
+       /**
+        * check if a node is a (grand-)child of the folder
+        *
+        * @param \OC\Files\Node\Node $node
+        * @return bool
+        */
+       public function isSubNode($node);
+
+       /**
+        * get the content of this directory
+        *
+        * @throws \OC\Files\NotFoundException
+        * @return Node[]
+        */
+       public function getDirectoryListing();
+
+       /**
+        * Get the node at $path
+        *
+        * @param string $path
+        * @return \OC\Files\Node\Node
+        * @throws \OC\Files\NotFoundException
+        */
+       public function get($path);
+
+       /**
+        * @param string $path
+        * @return bool
+        */
+       public function nodeExists($path);
+
+       /**
+        * @param string $path
+        * @return Folder
+        * @throws NotPermittedException
+        */
+       public function newFolder($path);
+
+       /**
+        * @param string $path
+        * @return File
+        * @throws NotPermittedException
+        */
+       public function newFile($path);
+
+       /**
+        * search for files with the name matching $query
+        *
+        * @param string $query
+        * @return Node[]
+        */
+       public function search($query);
+
+       /**
+        * search for files by mimetype
+        *
+        * @param string $mimetype
+        * @return Node[]
+        */
+       public function searchByMime($mimetype);
+
+       /**
+        * @param $id
+        * @return Node[]
+        */
+       public function getById($id);
+
+       public function getFreeSpace();
+
+       /**
+        * @return bool
+        */
+       public function isCreatable();
+}
diff --git a/lib/public/files/node/node.php b/lib/public/files/node/node.php
new file mode 100644 (file)
index 0000000..085e880
--- /dev/null
@@ -0,0 +1,108 @@
+<?php
+/**
+ * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP\Files\Node;
+
+interface Node {
+       /**
+        * @param string $targetPath
+        * @throws \OC\Files\NotPermittedException
+        * @return \OC\Files\Node\Node
+        */
+       public function move($targetPath);
+
+       public function delete();
+
+       /**
+        * @param string $targetPath
+        * @return \OC\Files\Node\Node
+        */
+       public function copy($targetPath);
+
+       /**
+        * @param int $mtime
+        * @throws \OC\Files\NotPermittedException
+        */
+       public function touch($mtime = null);
+
+       /**
+        * @return \OC\Files\Storage\Storage
+        * @throws \OC\Files\NotFoundException
+        */
+       public function getStorage();
+
+       /**
+        * @return string
+        */
+       public function getPath();
+
+       /**
+        * @return string
+        */
+       public function getInternalPath();
+
+       /**
+        * @return int
+        */
+       public function getId();
+
+       /**
+        * @return array
+        */
+       public function stat();
+
+       /**
+        * @return int
+        */
+       public function getMTime();
+
+       /**
+        * @return int
+        */
+       public function getSize();
+
+       /**
+        * @return string
+        */
+       public function getEtag();
+
+       /**
+        * @return int
+        */
+       public function getPermissions();
+
+       /**
+        * @return bool
+        */
+       public function isReadable();
+
+       /**
+        * @return bool
+        */
+       public function isUpdateable();
+
+       /**
+        * @return bool
+        */
+       public function isDeletable();
+
+       /**
+        * @return bool
+        */
+       public function isShareable();
+
+       /**
+        * @return Node
+        */
+       public function getParent();
+
+       /**
+        * @return string
+        */
+       public function getName();
+}