annotate vendor/sabre/vobject/lib/Property/Binary.php @ 7:430dbd5346f7

vendor sabre as distributed
author Charlie Root
date Sat, 13 Jan 2018 09:06:10 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
1 <?php
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
2
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
3 namespace Sabre\VObject\Property;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
4
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
5 use
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
6 LogicException,
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
7 Sabre\VObject\Property;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
8
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
9 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
10 * BINARY property
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
11 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
12 * This object represents BINARY values.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
13 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
14 * Binary values are most commonly used by the iCalendar ATTACH property, and
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
15 * the vCard PHOTO property.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
16 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
17 * This property will transparently encode and decode to base64.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
18 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
19 * @copyright Copyright (C) 2011-2015 fruux GmbH (https://fruux.com/).
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
20 * @author Evert Pot (http://evertpot.com/)
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
21 * @license http://sabre.io/license/ Modified BSD License
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
22 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
23 class Binary extends Property {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
24
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
25 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
26 * In case this is a multi-value property. This string will be used as a
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
27 * delimiter.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
28 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
29 * @var string|null
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
30 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
31 public $delimiter = null;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
32
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
33 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
34 * Updates the current value.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
35 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
36 * This may be either a single, or multiple strings in an array.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
37 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
38 * @param string|array $value
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
39 * @return void
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
40 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
41 public function setValue($value) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
42
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
43 if(is_array($value)) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
44
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
45 if(count($value) === 1) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
46 $this->value = $value[0];
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
47 } else {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
48 throw new \InvalidArgumentException('The argument must either be a string or an array with only one child');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
49 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
50
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
51 } else {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
52
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
53 $this->value = $value;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
54
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
55 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
56
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
57 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
58
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
59 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
60 * Sets a raw value coming from a mimedir (iCalendar/vCard) file.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
61 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
62 * This has been 'unfolded', so only 1 line will be passed. Unescaping is
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
63 * not yet done, but parameters are not included.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
64 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
65 * @param string $val
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
66 * @return void
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
67 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
68 public function setRawMimeDirValue($val) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
69
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
70 $this->value = base64_decode($val);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
71
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
72 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
73
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
74 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
75 * Returns a raw mime-dir representation of the value.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
76 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
77 * @return string
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
78 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
79 public function getRawMimeDirValue() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
80
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
81 return base64_encode($this->value);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
82
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
83 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
84
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
85 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
86 * Returns the type of value.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
87 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
88 * This corresponds to the VALUE= parameter. Every property also has a
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
89 * 'default' valueType.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
90 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
91 * @return string
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
92 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
93 public function getValueType() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
94
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
95 return 'BINARY';
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
96
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
97 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
98
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
99 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
100 * Returns the value, in the format it should be encoded for json.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
101 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
102 * This method must always return an array.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
103 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
104 * @return array
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
105 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
106 public function getJsonValue() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
107
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
108 return array(base64_encode($this->getValue()));
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
109
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
110 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
111
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
112 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
113 * Sets the json value, as it would appear in a jCard or jCal object.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
114 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
115 * The value must always be an array.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
116 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
117 * @param array $value
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
118 * @return void
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
119 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
120 public function setJsonValue(array $value) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
121
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
122 $value = array_map('base64_decode', $value);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
123 parent::setJsonValue($value);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
124
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
125 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
126
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
127 }