sharees = $sharees; } /** * Returns the list of users, as it was passed to the constructor. * * @return array */ function getValue() { return $this->sharees; } /** * The xmlSerialize method is called during xml writing. * * Use the $writer argument to write its own xml serialization. * * An important note: do _not_ create a parent element. Any element * implementing XmlSerializable should only ever write what's considered * its 'inner xml'. * * The parent of the current element is responsible for writing a * containing element. * * This allows serializers to be re-used for different element names. * * If you are opening new elements, you must also close them again. * * @param Writer $writer * @return void */ function xmlSerialize(Writer $writer) { $cs = '{' . Plugin::NS_CALENDARSERVER . '}'; foreach ($this->sharees as $sharee) { if ($sharee->access === DAV\Sharing\Plugin::ACCESS_SHAREDOWNER) { $writer->startElement($cs . 'organizer'); } else { $writer->startElement($cs . 'user'); switch ($sharee->inviteStatus) { case DAV\Sharing\Plugin::INVITE_ACCEPTED : $writer->writeElement($cs . 'invite-accepted'); break; case DAV\Sharing\Plugin::INVITE_DECLINED : $writer->writeElement($cs . 'invite-declined'); break; case DAV\Sharing\Plugin::INVITE_NORESPONSE : $writer->writeElement($cs . 'invite-noresponse'); break; case DAV\Sharing\Plugin::INVITE_INVALID : $writer->writeElement($cs . 'invite-invalid'); break; } $writer->startElement($cs . 'access'); switch ($sharee->access) { case DAV\Sharing\Plugin::ACCESS_READWRITE : $writer->writeElement($cs . 'read-write'); break; case DAV\Sharing\Plugin::ACCESS_READ : $writer->writeElement($cs . 'read'); break; } $writer->endElement(); // access } $href = new DAV\Xml\Property\Href($sharee->href); $href->xmlSerialize($writer); if (isset($sharee->properties['{DAV:}displayname'])) { $writer->writeElement($cs . 'common-name', $sharee->properties['{DAV:}displayname']); } if ($sharee->comment) { $writer->writeElement($cs . 'summary', $sharee->comment); } $writer->endElement(); // organizer or user } } }