From d9f864a13f9216b7ee78a85c53d3184220eb01c3 Mon Sep 17 00:00:00 2001
From: Silvio <silvio@devlet.com.br>
Date: Thu, 15 Jul 2010 18:15:21 -0300
Subject: Moving iterators to their own folder

---
 classes/iterators/IsisValueIterator.php | 62 +++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)
 create mode 100644 classes/iterators/IsisValueIterator.php

(limited to 'classes/iterators/IsisValueIterator.php')

diff --git a/classes/iterators/IsisValueIterator.php b/classes/iterators/IsisValueIterator.php
new file mode 100644
index 0000000..f10125d
--- /dev/null
+++ b/classes/iterators/IsisValueIterator.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * Isis value iterator. Iterates over all values for
+ * each result row.
+ */
+class IsisValueIterator implements Iterator
+{
+  private $valueset;
+  private $row    = 0;
+  private $rows   = 0;
+
+  /**
+   * Constructor.
+   *
+   * @param $class
+   *   Instance of IsisConnector or child class.
+   *
+   * @param $field
+   *   Field to iterate over.
+   */ 
+  public function __construct($class, $field) {
+    $this->rows     = $class->getRows($field);
+    $this->valueset = $class->getValues($field);
+  }
+
+  /**
+   * Rewind the Iterator to the first element.
+   */
+  function rewind() {
+    $this->row   = 0;
+    $this->value = 0;
+  }
+
+  /**
+   * Return the key of the current element.
+   */
+  function key() {
+    return $this->row;
+  }
+
+  /**
+   * Return the current element.
+   */
+  function current() {
+    return $this->valueset[$this->row];
+  }
+
+  /**
+   * Move forward to next element.
+   */
+  function next() {
+    ++$this->row;
+  }
+
+  /**
+   * Check if there is a current element after calls to rewind() or next().
+   */
+  function valid() {
+    return $this->row <= $this->rows;
+  }  
+}
-- 
cgit v1.2.3