a613155875d798c4cb6c5607be549bf6313e84ce
[Packages/TYPO3.CMS.git] / typo3 / sysext / extbase / Classes / Persistence / IteratorInterface.php
1 <?php
2 /***************************************************************
3 * Copyright notice
4 *
5 * (c) 2009 Jochen Rau <jochen.rau@typoplanet.de>
6 * All rights reserved
7 *
8 * This class is a backport of the corresponding class of FLOW3.
9 * All credits go to the v5 team.
10 *
11 * This script is part of the TYPO3 project. The TYPO3 project is
12 * free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
16 *
17 * The GNU General Public License can be found at
18 * http://www.gnu.org/copyleft/gpl.html.
19 *
20 * This script is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * This copyright notice MUST APPEAR in all copies of the script!
26 ***************************************************************/
27
28 /**
29 * An Iterator interface
30 *
31 * The methods next(), hasNext() and remove() as in java.util.Iterator
32 * append() is something we thought would be nice...
33 *
34 * @package Extbase
35 * @subpackage Persistence
36 * @version $Id$
37 */
38 interface Tx_Extbase_Persistence_IteratorInterface extends Iterator {
39
40 /**
41 * Returns the next element. Commented as PHP dows not allow overriding methods from extended interfaces...
42 *
43 * @return mixed
44 * @throws OutOfBoundsException if no next element exists
45 */
46 //public function next();
47
48 /**
49 * Returns true if the iteration has more elements.
50 *
51 * This is an alias of valid().
52 *
53 * @return boolean
54 */
55 public function hasNext();
56
57 /**
58 * Removes from the underlying collection the last element returned by the iterator.
59 * This method can be called only once per call to next. The behavior of an iterator
60 * is unspecified if the underlying collection is modified while the iteration is in
61 * progress in any way other than by calling this method.
62 *
63 * @return void
64 * @throws IllegalStateException if the next method has not yet been called, or the remove method has already been called after the last call to the next method.
65 */
66 public function remove();
67
68 /**
69 * Append a new element to the iteration
70 *
71 * @param mixed $element
72 * @return void
73 */
74 public function append($element);
75 }
76 ?>