Merge pull request #6748 from owncloud/fileinfo
Add a FileInfo class which holds all info of a file ...remotes/origin/ldap_group_count
commit
2a7509ee50
@ -0,0 +1,189 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2014 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 OC\Files; |
||||
|
||||
class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess, \JsonSerializable { |
||||
/** |
||||
* @var array $data |
||||
*/ |
||||
private $data; |
||||
|
||||
/** |
||||
* @var string $path |
||||
*/ |
||||
private $path; |
||||
|
||||
/** |
||||
* @var \OC\Files\Storage\Storage $storage |
||||
*/ |
||||
private $storage; |
||||
|
||||
/** |
||||
* @var string $internalPath |
||||
*/ |
||||
private $internalPath; |
||||
|
||||
public function __construct($path, $storage, $internalPath, $data) { |
||||
$this->path = $path; |
||||
$this->storage = $storage; |
||||
$this->internalPath = $internalPath; |
||||
$this->data = $data; |
||||
} |
||||
|
||||
public function offsetSet($offset, $value) { |
||||
$this->data[$offset] = $value; |
||||
} |
||||
|
||||
public function offsetExists($offset) { |
||||
return isset($this->data[$offset]); |
||||
} |
||||
|
||||
public function offsetUnset($offset) { |
||||
unset($this->data[$offset]); |
||||
} |
||||
|
||||
public function offsetGet($offset) { |
||||
return $this->data[$offset]; |
||||
} |
||||
|
||||
public function jsonSerialize() { |
||||
return $this->data; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getPath() { |
||||
return $this->path; |
||||
} |
||||
|
||||
/** |
||||
* @return \OCP\Files\Storage |
||||
*/ |
||||
public function getStorage() { |
||||
return $this->storage; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getInternalPath() { |
||||
return $this->internalPath; |
||||
} |
||||
|
||||
/** |
||||
* @return int |
||||
*/ |
||||
public function getId() { |
||||
return $this->data['fileid']; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getMimetype() { |
||||
return $this->data['mimetype']; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getMimePart() { |
||||
return $this->data['mimepart']; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getName() { |
||||
return $this->data['name']; |
||||
} |
||||
|
||||
/** |
||||
* @return string |
||||
*/ |
||||
public function getEtag() { |
||||
return $this->data['etag']; |
||||
} |
||||
|
||||
/** |
||||
* @return int |
||||
*/ |
||||
public function getSize() { |
||||
return $this->data['size']; |
||||
} |
||||
|
||||
/** |
||||
* @return int |
||||
*/ |
||||
public function getMTime() { |
||||
return $this->data['mtime']; |
||||
} |
||||
|
||||
/** |
||||
* @return bool |
||||
*/ |
||||
public function isEncrypted() { |
||||
return $this->data['encrypted']; |
||||
} |
||||
|
||||
/** |
||||
* @return int |
||||
*/ |
||||
public function getPermissions() { |
||||
return $this->data['permissions']; |
||||
} |
||||
|
||||
/** |
||||
* @return \OCP\Files\FileInfo::TYPE_FILE | \OCP\Files\FileInfo::TYPE_FOLDER |
||||
*/ |
||||
public function getType() { |
||||
return $this->data['type']; |
||||
} |
||||
|
||||
public function getData(){ |
||||
return $this->data; |
||||
} |
||||
|
||||
/** |
||||
* @param int $permissions |
||||
* @return bool |
||||
*/ |
||||
protected function checkPermissions($permissions) { |
||||
return ($this->getPermissions() & $permissions) === $permissions; |
||||
} |
||||
|
||||
/** |
||||
* @return bool |
||||
*/ |
||||
public function isReadable() { |
||||
return $this->checkPermissions(\OCP\PERMISSION_READ); |
||||
} |
||||
|
||||
/** |
||||
* @return bool |
||||
*/ |
||||
public function isUpdateable() { |
||||
return $this->checkPermissions(\OCP\PERMISSION_UPDATE); |
||||
} |
||||
|
||||
/** |
||||
* @return bool |
||||
*/ |
||||
public function isDeletable() { |
||||
return $this->checkPermissions(\OCP\PERMISSION_DELETE); |
||||
} |
||||
|
||||
/** |
||||
* @return bool |
||||
*/ |
||||
public function isShareable() { |
||||
return $this->checkPermissions(\OCP\PERMISSION_SHARE); |
||||
} |
||||
} |
||||
@ -0,0 +1,138 @@ |
||||
<?php |
||||
/** |
||||
* Copyright (c) 2014 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; |
||||
|
||||
interface FileInfo { |
||||
const TYPE_FILE = 'file'; |
||||
const TYPE_FOLDER = 'folder'; |
||||
|
||||
/** |
||||
* Get the Etag of the file or folder |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getEtag(); |
||||
|
||||
/** |
||||
* Get the size in bytes for the file or folder |
||||
* |
||||
* @return int |
||||
*/ |
||||
public function getSize(); |
||||
|
||||
/** |
||||
* Get the last modified date as timestamp for the file or folder |
||||
* |
||||
* @return int |
||||
*/ |
||||
public function getMtime(); |
||||
|
||||
/** |
||||
* Get the name of the file or folder |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getName(); |
||||
|
||||
/** |
||||
* Get the path relative to the storage |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getInternalPath(); |
||||
|
||||
/** |
||||
* Get the absolute path |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getPath(); |
||||
|
||||
/** |
||||
* Get the full mimetype of the file or folder i.e. 'image/png' |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getMimetype(); |
||||
|
||||
/** |
||||
* Get the first part of the mimetype of the file or folder i.e. 'image' |
||||
* |
||||
* @return string |
||||
*/ |
||||
public function getMimePart(); |
||||
|
||||
/** |
||||
* Get the storage the file or folder is storage on |
||||
* |
||||
* @return \OCP\Files\Storage |
||||
*/ |
||||
public function getStorage(); |
||||
|
||||
/** |
||||
* Get the file id of the file or folder |
||||
* |
||||
* @return int |
||||
*/ |
||||
public function getId(); |
||||
|
||||
/** |
||||
* Check whether the file is encrypted |
||||
* |
||||
* @return bool |
||||
*/ |
||||
public function isEncrypted(); |
||||
|
||||
/** |
||||
* Get the permissions of the file or folder as bitmasked combination of the following constants |
||||
* \OCP\PERMISSION_CREATE |
||||
* \OCP\PERMISSION_READ |
||||
* \OCP\PERMISSION_UPDATE |
||||
* \OCP\PERMISSION_DELETE |
||||
* \OCP\PERMISSION_SHARE |
||||
* \OCP\PERMISSION_ALL |
||||
* |
||||
* @return int |
||||
*/ |
||||
public function getPermissions(); |
||||
|
||||
/** |
||||
* Check whether this is a file or a folder |
||||
* |
||||
* @return \OCP\Files\FileInfo::TYPE_FILE | \OCP\Files\FileInfo::TYPE_FOLDER |
||||
*/ |
||||
public function getType(); |
||||
|
||||
/** |
||||
* Check if the file or folder is readable |
||||
* |
||||
* @return bool |
||||
*/ |
||||
public function isReadable(); |
||||
|
||||
/** |
||||
* Check if a file is writable |
||||
* |
||||
* @return bool |
||||
*/ |
||||
public function isUpdateable(); |
||||
|
||||
/** |
||||
* Check if a file or folder can be deleted |
||||
* |
||||
* @return bool |
||||
*/ |
||||
public function isDeletable(); |
||||
|
||||
/** |
||||
* Check if a file or folder can be shared |
||||
* |
||||
* @return bool |
||||
*/ |
||||
public function isShareable(); |
||||
} |
||||
Loading…
Reference in new issue