diff options
author | Robin Appelman <icewind@owncloud.com> | 2013-09-06 20:38:59 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2013-09-06 20:38:59 +0200 |
commit | 0131a3202597fe2cfefbb72e1a20fd266d48451a (patch) | |
tree | b978887d38a0dc14dc35707037403ff4754e5a0a /lib/public/files | |
parent | 1cfd03771f3ba8a91b5600cf71c6f455d288bbe0 (diff) | |
download | nextcloud-server-0131a3202597fe2cfefbb72e1a20fd266d48451a.tar.gz nextcloud-server-0131a3202597fe2cfefbb72e1a20fd266d48451a.zip |
extract interfaces from fileapi for public namespace
Diffstat (limited to 'lib/public/files')
-rw-r--r-- | lib/public/files/node/file.php | 44 | ||||
-rw-r--r-- | lib/public/files/node/folder.php | 104 | ||||
-rw-r--r-- | lib/public/files/node/node.php | 108 |
3 files changed, 256 insertions, 0 deletions
diff --git a/lib/public/files/node/file.php b/lib/public/files/node/file.php new file mode 100644 index 00000000000..193663f60b8 --- /dev/null +++ b/lib/public/files/node/file.php @@ -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 index 00000000000..7b3ae80f0d7 --- /dev/null +++ b/lib/public/files/node/folder.php @@ -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 index 00000000000..085e880e375 --- /dev/null +++ b/lib/public/files/node/node.php @@ -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(); +} |