* Tous droits réservés. */ namespace Irstea\PlantUmlBundle\Model\Orm; use Doctrine\ORM\Mapping\ClassMetadata; use Irstea\PlantUmlBundle\Model\ClassVisitor; /** * Description of Visitor * * @author Guillaume Perréal */ class EntityVisitor extends ClassVisitor { /** * @var ClassMetadata[] */ protected $metadata = []; public function __construct(array $metadata) { foreach($metadata as $md) { /* @var $md ClassMetadata */ $this->metadata[$md->getReflectionClass()->getName()] = $md; } } public function doVisitClass($className) { if (isset($this->metadata[$className])) { return $this->visitClassMetadata($this->metadata[$className]); } return parent::doVisitClass($className); } /** * @param ClassMetadata $metadata * @return AbstractNode */ protected function visitClassMetadata(ClassMetadata $metadata) { return $this->visitClassReflection($metadata->getReflectionClass()); } }