calendar = $calendar; $this->name = $name; $this->sourceItem = $sourceItem; $this->backend = $backend; $this->calendarObject = $this->sourceItem->getCalendarObject(); } public function getOwner() { return null; } public function getGroup() { return null; } public function getACL() { return $this->calendar->getACL(); } public function setACL(array $acl) { throw new Forbidden('Setting ACL is not supported on this node'); } public function getSupportedPrivilegeSet() { return null; } public function put($data) { throw new Forbidden('This calendar-object is read-only'); } public function get() { if ($this->sourceItem) { return $this->calendarObject->serialize(); } } public function getContentType() { return 'text/calendar; charset=utf-8'; } public function getETag() { return '"' . md5($this->sourceItem->getLastModified()) . '"'; } public function getSize() { return mb_strlen($this->calendarObject->serialize()); } public function delete() { throw new Forbidden('This calendar-object is read-only'); } public function getName() { return $this->name; } public function setName($name) { throw new Forbidden('This calendar-object is read-only'); } public function getLastModified() { return $this->sourceItem->getLastModified(); } }