summaryrefslogtreecommitdiffstats
path: root/src/Modifier/MapIterator.php
diff options
context:
space:
mode:
authorIgnace Nyamagana Butera <nyamsprod@gmail.com>2015-02-19 08:49:17 +0100
committerIgnace Nyamagana Butera <nyamsprod@gmail.com>2015-02-19 08:52:39 +0100
commit0a493cecf0216f4c797671601251e3c1a6452ffa (patch)
treea23aeb9c31d7e05ccffa30bd4e5dc46cd27a5139 /src/Modifier/MapIterator.php
parent959ede56075fec54891fad13744aeed6d42ad345 (diff)
downloadcsv-0a493cecf0216f4c797671601251e3c1a6452ffa.zip
csv-0a493cecf0216f4c797671601251e3c1a6452ffa.tar.gz
csv-0a493cecf0216f4c797671601251e3c1a6452ffa.tar.bz2
final package structure
Diffstat (limited to 'src/Modifier/MapIterator.php')
-rw-r--r--src/Modifier/MapIterator.php57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/Modifier/MapIterator.php b/src/Modifier/MapIterator.php
new file mode 100644
index 0000000..7360f42
--- /dev/null
+++ b/src/Modifier/MapIterator.php
@@ -0,0 +1,57 @@
+<?php
+/**
+* This file is part of the League.csv library
+*
+* @license http://opensource.org/licenses/MIT
+* @link https://github.com/thephpleague/csv/
+* @version 7.0.0
+* @package League.csv
+*
+* For the full copyright and license information, please view the LICENSE
+* file that was distributed with this source code.
+*/
+namespace League\Csv\Modifier;
+
+use IteratorIterator;
+use Traversable;
+
+/**
+ * A simple MapIterator
+ *
+ * @package League.csv
+ * @since 3.3.0
+ * @internal used internally to modify CSV content
+ *
+ */
+class MapIterator extends IteratorIterator
+{
+ /**
+ * The function to be apply on all InnerIterator element
+ *
+ * @var callable
+ */
+ private $callable;
+
+ /**
+ * The Constructor
+ *
+ * @param Traversable $iterator
+ * @param callable $callable
+ */
+ public function __construct(Traversable $iterator, callable $callable)
+ {
+ parent::__construct($iterator);
+ $this->callable = $callable;
+ }
+
+ /**
+ * Get the value of the current element
+ */
+ public function current()
+ {
+ $iterator = $this->getInnerIterator();
+ $callable = $this->callable;
+
+ return $callable($iterator->current(), $iterator->key(), $iterator);
+ }
+}