diff options
Diffstat (limited to 'vendor/sabre/vobject/lib/Sabre/VObject/Property/Compound.php')
-rw-r--r-- | vendor/sabre/vobject/lib/Sabre/VObject/Property/Compound.php | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/vendor/sabre/vobject/lib/Sabre/VObject/Property/Compound.php b/vendor/sabre/vobject/lib/Sabre/VObject/Property/Compound.php deleted file mode 100644 index 26f090069..000000000 --- a/vendor/sabre/vobject/lib/Sabre/VObject/Property/Compound.php +++ /dev/null @@ -1,125 +0,0 @@ -<?php - -namespace Sabre\VObject\Property; - -use Sabre\VObject; - -/** - * Compound property. - * - * This class adds (de)serialization of compound properties to/from arrays. - * - * Currently the following properties from RFC 6350 are mapped to use this - * class: - * - * N: Section 6.2.2 - * ADR: Section 6.3.1 - * ORG: Section 6.6.4 - * CATEGORIES: Section 6.7.1 - * - * In order to use this correctly, you must call setParts and getParts to - * retrieve and modify dates respectively. - * - * @author Thomas Tanghus (http://tanghus.net/) - * @author Lars Kneschke - * @author Evert Pot (http://evertpot.com/) - * @copyright Copyright (C) 2007-2013 fruux GmbH (https://fruux.com/). - * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License - */ -class Compound extends VObject\Property { - - /** - * If property names are added to this map, they will be (de)serialised as arrays - * using the getParts() and setParts() methods. - * The keys are the property names, values are delimiter chars. - * - * @var array - */ - static public $delimiterMap = array( - 'N' => ';', - 'ADR' => ';', - 'ORG' => ';', - 'CATEGORIES' => ',', - ); - - /** - * The currently used delimiter. - * - * @var string - */ - protected $delimiter = null; - - /** - * Get a compound value as an array. - * - * @param $name string - * @return array - */ - public function getParts() { - - if (is_null($this->value)) { - return array(); - } - - $delimiter = $this->getDelimiter(); - - // split by any $delimiter which is NOT prefixed by a slash. - // Note that this is not a a perfect solution. If a value is prefixed - // by two slashes, it should actually be split anyway. - // - // Hopefully we can fix this better in a future version, where we can - // break compatibility a bit. - $compoundValues = preg_split("/(?<!\\\)$delimiter/", $this->value); - - // remove slashes from any semicolon and comma left escaped in the single values - $compoundValues = array_map( - function($val) { - return strtr($val, array('\,' => ',', '\;' => ';')); - }, $compoundValues); - - return $compoundValues; - - } - - /** - * Returns the delimiter for this property. - * - * @return string - */ - public function getDelimiter() { - - if (!$this->delimiter) { - if (isset(self::$delimiterMap[$this->name])) { - $this->delimiter = self::$delimiterMap[$this->name]; - } else { - // To be a bit future proof, we are going to default the - // delimiter to ; - $this->delimiter = ';'; - } - } - return $this->delimiter; - - } - - /** - * Set a compound value as an array. - * - * - * @param $name string - * @return array - */ - public function setParts(array $values) { - - // add slashes to all semicolons and commas in the single values - $values = array_map( - function($val) { - return strtr($val, array(',' => '\,', ';' => '\;')); - }, $values); - - $this->setValue( - implode($this->getDelimiter(), $values) - ); - - } - -} |