root = $root; $this->name = $name; } /** * @inheritdoc */ public function put($data) { throw new Forbidden('Permission denied to put into this file'); } /** * @inheritdoc */ public function get() { $nodes = $this->root->getChildren(); return AssemblyStream::wrap($nodes); } public function getPath() { return $this->root->getFileInfo()->getInternalPath() . '/.file'; } /** * @inheritdoc */ public function getContentType() { return 'application/octet-stream'; } /** * @inheritdoc */ public function getETag() { return $this->root->getETag(); } /** * @inheritdoc */ public function getSize() { $children = $this->root->getChildren(); $sizes = array_map(function ($node) { /** @var IFile $node */ return $node->getSize(); }, $children); return array_sum($sizes); } /** * @inheritdoc */ public function delete() { $this->root->delete(); } /** * @inheritdoc */ public function getName() { return $this->name; } /** * @inheritdoc */ public function setName($name) { throw new Forbidden('Permission denied to rename this file'); } /** * @inheritdoc */ public function getLastModified() { return $this->root->getLastModified(); } }