/**
  * visit a content and process it
  *
  * @param   vfsStreamContent  $content
  * @return  vfsStreamVisitor
  * @throws  InvalidArgumentException
  */
 public function visit(vfsStreamContent $content)
 {
     switch ($content->getType()) {
         case vfsStreamContent::TYPE_FILE:
             $this->visitFile($content);
             break;
         case vfsStreamContent::TYPE_DIR:
             $this->visitDirectory($content);
             break;
         default:
             throw new InvalidArgumentException('Unknown content type');
     }
     return $this;
 }