function apply ($traversableClass)
  {
    $args    = func_get_args ();
    $args[0] = $this->getIterator ();
    $c       = new \ReflectionClass ($traversableClass);
    $this->setIterator ($c->newInstanceArgs ($args));
    return $this;
  }
function apply ($traversableClass)
  {
    $args    = func_get_args ();
    $args[0] = $this->getIterator ();
    $c       = new \ReflectionClass ($traversableClass);
    $this->setIterator ($c->newInstanceArgs ($args));
    return $this;
  }
function apply ( $ traversableClass ) { $ args = func_get_args ( ) ; $ args [ 0 ] = $ this -> getIterator ( ) ; $ c = new \ ReflectionClass ( $ traversableClass ) ; $ this -> setIterator ( $ c -> newInstanceArgs ( $ args ) ) ; return $ this ; }
Instantiates an outer iterator and chains it to the current iterator.

Ex:
```
Query::range (1,10)->apply ('RegexIterator', '/^1/')->all ()
```

@param string $traversableClass The name of a {@see Traversable} class whose constructor receives an
iterator as a first argument.
@param mixed  ...$args          Additional arguments for the external iterator's constructor.
@return $this
Instantiates an outer iterator and chains it to the current iterator .