From 2f8b1036da42ec3d15a51c6b17a473f9f4df71d3 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <bruederli@kolabsys.com> Date: Sat, 07 Feb 2015 12:33:24 -0500 Subject: [PATCH] Bump version and copyright year --- program/lib/Roundcube/rcube_result_set.php | 85 +++++++++++++++++++++++++++++++++--------- 1 files changed, 66 insertions(+), 19 deletions(-) diff --git a/program/lib/Roundcube/rcube_result_set.php b/program/lib/Roundcube/rcube_result_set.php index 456d1c9..82502ce 100644 --- a/program/lib/Roundcube/rcube_result_set.php +++ b/program/lib/Roundcube/rcube_result_set.php @@ -2,10 +2,8 @@ /* +-----------------------------------------------------------------------+ - | program/include/rcube_result_set.php | - | | | This file is part of the Roundcube Webmail client | - | Copyright (C) 2006-2011, The Roundcube Dev Team | + | Copyright (C) 2006-2013, The Roundcube Dev Team | | | | Licensed under the GNU General Public License version 3 or | | any later version with exceptions for skins & plugins. | @@ -13,28 +11,28 @@ | | | PURPOSE: | | Class representing an address directory result set | - | | +-----------------------------------------------------------------------+ | Author: Thomas Bruederli <roundcube@gmail.com> | +-----------------------------------------------------------------------+ */ - /** - * Roundcube result set class. + * Roundcube result set class + * * Representing an address directory result set. + * Implenets Iterator and thus be used in foreach() loops. * * @package Framework * @subpackage Addressbook */ -class rcube_result_set +class rcube_result_set implements Iterator, ArrayAccess { - var $count = 0; - var $first = 0; - var $current = 0; - var $searchonly = false; - var $records = array(); + public $count = 0; + public $first = 0; + public $searchonly = false; + public $records = array(); + private $current = 0; function __construct($c=0, $f=0) { @@ -55,13 +53,7 @@ function first() { $this->current = 0; - return $this->records[$this->current++]; - } - - // alias for iterate() - function next() - { - return $this->iterate(); + return $this->records[$this->current]; } function seek($i) @@ -69,4 +61,59 @@ $this->current = $i; } + /*** Implement PHP ArrayAccess interface ***/ + + public function offsetSet($offset, $value) + { + if (is_null($offset)) { + $offset = count($this->records); + $this->records[] = $value; + } + else { + $this->records[$offset] = $value; + } + } + + public function offsetExists($offset) + { + return isset($this->records[$offset]); + } + + public function offsetUnset($offset) + { + unset($this->records[$offset]); + } + + public function offsetGet($offset) + { + return $this->records[$offset]; + } + + /*** PHP 5 Iterator interface ***/ + + function rewind() + { + $this->current = 0; + } + + function current() + { + return $this->records[$this->current]; + } + + function key() + { + return $this->current; + } + + function next() + { + return $this->iterate(); + } + + function valid() + { + return isset($this->records[$this->current]); + } + } -- Gitblit v1.9.1