annotate vendor/sabre/vobject/lib/ElementList.php @ 14:ba938c2e7146

autogenerated
author Charlie Root
date Sat, 13 Jan 2018 09:42:22 -0500
parents 430dbd5346f7
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;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
4
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
5 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
6 * VObject ElementList
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
7 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
8 * This class represents a list of elements. Lists are the result of queries,
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
9 * such as doing $vcalendar->vevent where there's multiple VEVENT objects.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
10 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
11 * @copyright Copyright (C) 2011-2015 fruux GmbH (https://fruux.com/).
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
12 * @author Evert Pot (http://evertpot.com/)
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
13 * @license http://sabre.io/license/ Modified BSD License
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
14 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
15 class ElementList implements \Iterator, \Countable, \ArrayAccess {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
16
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
17 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
18 * Inner elements
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
19 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
20 * @var array
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
21 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
22 protected $elements = array();
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
23
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
24 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
25 * Creates the element list.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
26 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
27 * @param array $elements
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
28 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
29 public function __construct(array $elements) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
30
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
31 $this->elements = $elements;
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
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
35 /* {{{ Iterator interface */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
36
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
37 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
38 * Current position
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
39 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
40 * @var int
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
41 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
42 private $key = 0;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
43
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
44 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
45 * Returns current item in iteration
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
46 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
47 * @return Element
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
48 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
49 public function current() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
50
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
51 return $this->elements[$this->key];
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
52
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
53 }
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 * To the next item in the iterator
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
57 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
58 * @return void
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
59 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
60 public function next() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
61
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
62 $this->key++;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
63
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
64 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
65
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
66 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
67 * Returns the current iterator key
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
68 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
69 * @return int
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
70 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
71 public function key() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
72
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
73 return $this->key;
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
74
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
75 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
76
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
77 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
78 * Returns true if the current position in the iterator is a valid one
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
79 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
80 * @return bool
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
81 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
82 public function valid() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
83
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
84 return isset($this->elements[$this->key]);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
85
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
86 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
87
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
88 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
89 * Rewinds the iterator
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
90 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
91 * @return void
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
92 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
93 public function rewind() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
94
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
95 $this->key = 0;
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
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
101 /* {{{ Countable interface */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
102
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
103 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
104 * Returns the number of elements
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
105 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
106 * @return int
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
107 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
108 public function count() {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
109
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
110 return count($this->elements);
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
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
114 /* }}} */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
115
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
116 /* {{{ ArrayAccess Interface */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
117
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
118
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
119 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
120 * Checks if an item exists through ArrayAccess.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
121 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
122 * @param int $offset
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
123 * @return bool
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
124 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
125 public function offsetExists($offset) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
126
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
127 return isset($this->elements[$offset]);
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
128
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
129 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
130
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
131 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
132 * Gets an item through ArrayAccess.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
133 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
134 * @param int $offset
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
135 * @return mixed
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
136 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
137 public function offsetGet($offset) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
138
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
139 return $this->elements[$offset];
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
140
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
141 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
142
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
143 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
144 * Sets an item through ArrayAccess.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
145 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
146 * @param int $offset
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
147 * @param mixed $value
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
148 * @return void
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
149 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
150 public function offsetSet($offset, $value) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
151
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
152 throw new \LogicException('You can not add new objects to an ElementList');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
153
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
154 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
155
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
156 /**
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
157 * Sets an item through ArrayAccess.
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
158 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
159 * This method just forwards the request to the inner iterator
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
160 *
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
161 * @param int $offset
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
162 * @return void
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
163 */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
164 public function offsetUnset($offset) {
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
165
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
166 throw new \LogicException('You can not remove objects from an ElementList');
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
167
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
168 }
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
169
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
170 /* }}} */
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
171
430dbd5346f7 vendor sabre as distributed
Charlie Root
parents:
diff changeset
172 }