private function getLines($source)
{
$result = null;
if (is_string($source)) {
if ($this->isFile($source)) {
$result = new \SplFileObject($source);
} elseif (is_string($source)) {
$result = new \SplFileObject('data://text/csv;base64,' . base64_encode($source));
}
$result->setFlags(\SplFileObject::READ_CSV);
$result->setCsvControl($this->_delimiter, $this->_enclosure, $this->_escape);
} elseif (is_array($source)) {
$result = new \ArrayIterator($source);
} elseif ($source instanceof \Traversable) {
$result = $source;
}
return empty($result) ? NULL : $result;
}