id = $id; $this->type = $type; $this->description = $description; $this->href = $href; $this->etag = $etag; } /** * The serialize method is called during xml writing. * * It should use the $writer argument to encode this object into XML. * * Important note: it is not needed to create the parent element. The * parent element is already created, and we only have to worry about * attributes, child elements and text (if any). * * Important note 2: If you are writing any new elements, you are also * responsible for closing them. * * @param Writer $writer * @return void */ function xmlSerialize(Writer $writer) { switch ($this->type) { case self::TYPE_LOW : $type = 'low'; break; case self::TYPE_MEDIUM : $type = 'medium'; break; default : case self::TYPE_HIGH : $type = 'high'; break; } $writer->startElement('{' . Plugin::NS_CALENDARSERVER . '}systemstatus'); $writer->writeAttribute('type', $type); $writer->endElement(); } /** * This method serializes the entire notification, as it is used in the * response body. * * @param Writer $writer * @return void */ function xmlSerializeFull(Writer $writer) { $cs = '{' . Plugin::NS_CALENDARSERVER . '}'; switch ($this->type) { case self::TYPE_LOW : $type = 'low'; break; case self::TYPE_MEDIUM : $type = 'medium'; break; default : case self::TYPE_HIGH : $type = 'high'; break; } $writer->startElement($cs . 'systemstatus'); $writer->writeAttribute('type', $type); if ($this->description) { $writer->writeElement($cs . 'description', $this->description); } if ($this->href) { $writer->writeElement('{DAV:}href', $this->href); } $writer->endElement(); // systemstatus } /** * Returns a unique id for this notification * * This is just the base url. This should generally be some kind of unique * id. * * @return string */ function getId() { return $this->id; } /* * Returns the ETag for this notification. * * The ETag must be surrounded by literal double-quotes. * * @return string */ function getETag() { return $this->etag; } }