public function getInnerIterator()
{
if (NULL === $this->_iterator) {
if ($this->_traversable instanceof \Iterator) {
$this->_iterator = $this->_traversable;
} elseif (is_array($this->_traversable)) {
$this->_iterator = new \ArrayIterator($this->_traversable);
} else {
$this->_iterator = $this->_traversable instanceof \Traversable ? new \IteratorIterator($this->_traversable) : new \EmptyIterator();
}
}
return $this->_iterator;
}