public function map($name, $data) { foreach ($this->visitors as $visitor) { if ($visitor->canMap($name)) { return $visitor->map($name, $data); } } throw new OutOfRangeException('No visitor available for: ' . $name); }