Mercurial > hg > rc1
diff plugins/libcalendaring/lib/Sabre/VObject/Parameter.php @ 4:888e774ee983
libcalendar plugin as distributed
author | Charlie Root |
---|---|
date | Sat, 13 Jan 2018 08:57:56 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/libcalendaring/lib/Sabre/VObject/Parameter.php Sat Jan 13 08:57:56 2018 -0500 @@ -0,0 +1,102 @@ +<?php + +namespace Sabre\VObject; + +/** + * VObject Parameter + * + * This class represents a parameter. A parameter is always tied to a property. + * In the case of: + * DTSTART;VALUE=DATE:20101108 + * VALUE=DATE would be the parameter name and value. + * + * @copyright Copyright (C) 2007-2013 fruux GmbH (https://fruux.com/). + * @author Evert Pot (http://evertpot.com/) + * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License + */ +class Parameter extends Node { + + /** + * Parameter name + * + * @var string + */ + public $name; + + /** + * Parameter value + * + * @var string + */ + public $value; + + /** + * Sets up the object + * + * @param string $name + * @param string $value + */ + public function __construct($name, $value = null) { + + if (!is_scalar($value) && !is_null($value)) { + throw new \InvalidArgumentException('The value argument must be a scalar value or null'); + } + + $this->name = strtoupper($name); + $this->value = $value; + + } + + /** + * Returns the parameter's internal value. + * + * @return string + */ + public function getValue() { + + return $this->value; + + } + + + /** + * Turns the object back into a serialized blob. + * + * @return string + */ + public function serialize() { + + if (is_null($this->value)) { + return $this->name; + } + $src = array( + '\\', + "\n", + ); + $out = array( + '\\\\', + '\n', + ); + + // quote parameters according to RFC 5545, Section 3.2 + $quotes = ''; + if (preg_match('/[:;,]/', $this->value)) { + $quotes = '"'; + } + + return $this->name . '=' . $quotes . str_replace($src, $out, $this->value) . $quotes; + + } + + /** + * Called when this object is being cast to a string + * + * @return string + */ + public function __toString() { + + return $this->value; + + } + +}