summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/AbstractCsv.php5
-rw-r--r--src/Config/Output.php8
-rw-r--r--src/Reader.php10
3 files changed, 19 insertions, 4 deletions
diff --git a/src/AbstractCsv.php b/src/AbstractCsv.php
index f3a0e30..a792c4f 100644
--- a/src/AbstractCsv.php
+++ b/src/AbstractCsv.php
@@ -155,6 +155,11 @@ abstract class AbstractCsv implements JsonSerializable, IteratorAggregate
return $obj;
}
+ protected function getOutputIterator()
+ {
+ return $this->getIterator();
+ }
+
/**
* Create a {@link AbstractCsv} instance from another {@link AbstractCsv} object
*
diff --git a/src/Config/Output.php b/src/Config/Output.php
index 8059eb9..ed84ca0 100644
--- a/src/Config/Output.php
+++ b/src/Config/Output.php
@@ -44,7 +44,7 @@ trait Output
*
* @return \SplFileObject
*/
- abstract public function getIterator();
+ abstract protected function getOutputIterator();
/**
* JsonSerializable Interface
@@ -53,7 +53,7 @@ trait Output
*/
public function jsonSerialize()
{
- return iterator_to_array($this->convertToUtf8($this->getIterator()), false);
+ return iterator_to_array($this->convertToUtf8($this->getOutputIterator()), false);
}
/**
@@ -122,7 +122,7 @@ trait Output
*/
public function output($filename = null)
{
- $iterator = $this->getIterator();
+ $iterator = $this->getOutputIterator();
$iterator->rewind();
//@codeCoverageIgnoreStart
if (! is_null($filename) && self::isValidString($filename)) {
@@ -178,7 +178,7 @@ trait Output
{
$doc = new DomDocument('1.0', 'UTF-8');
$root = $doc->createElement($root_name);
- $iterator = $this->convertToUtf8($this->getIterator());
+ $iterator = $this->convertToUtf8($this->getOutputIterator());
foreach ($iterator as $row) {
$item = $doc->createElement($row_name);
array_walk($row, function ($value) use (&$item, $doc, $cell_name) {
diff --git a/src/Reader.php b/src/Reader.php
index 080cc79..7952875 100644
--- a/src/Reader.php
+++ b/src/Reader.php
@@ -61,6 +61,16 @@ class Reader extends AbstractCsv
return $iterator;
}
+ protected function getOutputIterator()
+ {
+ $iterator = $this->getIterator();
+ $iterator = $this->applyIteratorFilter($iterator);
+ $iterator = $this->applyIteratorSortBy($iterator);
+ $iterator = $this->applyIteratorInterval($iterator);
+
+ return $iterator;
+ }
+
/**
* Apply a callback function on the CSV
*