<?php
/**
- * Classes to walk into a list of User objects.
+ * Class to walk into a list of User objects.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
abstract class UserArray implements Iterator {
/**
- * @param $res ResultWrapper
+ * @param ResultWrapper $res
* @return UserArrayFromResult
*/
static function newFromResult( $res ) {
}
/**
- * @param $ids array
+ * @param array $ids
* @return UserArrayFromResult
*/
static function newFromIDs( $ids ) {
}
/**
- * @param $res
+ * @param ResultWrapper $res
* @return UserArrayFromResult
*/
protected static function newFromResult_internal( $res ) {
return new UserArrayFromResult( $res );
}
}
-
-class UserArrayFromResult extends UserArray implements Countable {
-
- /**
- * @var ResultWrapper
- */
- var $res;
- var $key, $current;
-
- /**
- * @param $res ResultWrapper
- */
- function __construct( $res ) {
- $this->res = $res;
- $this->key = 0;
- $this->setCurrent( $this->res->current() );
- }
-
- /**
- * @param $row
- * @return void
- */
- protected function setCurrent( $row ) {
- if ( $row === false ) {
- $this->current = false;
- } else {
- $this->current = User::newFromRow( $row );
- }
- }
-
- /**
- * @return int
- */
- public function count() {
- return $this->res->numRows();
- }
-
- /**
- * @return User
- */
- function current() {
- return $this->current;
- }
-
- function key() {
- return $this->key;
- }
-
- function next() {
- $row = $this->res->next();
- $this->setCurrent( $row );
- $this->key++;
- }
-
- function rewind() {
- $this->res->rewind();
- $this->key = 0;
- $this->setCurrent( $this->res->current() );
- }
-
- /**
- * @return bool
- */
- function valid() {
- return $this->current !== false;
- }
-}