An error occurred while loading the file. Please try again.
-
Guillaume Perréal authored72c714b0
<?php
/*
* © 2016 IRSTEA
* Guillaume Perréal <guillaume.perreal@irstea.fr>
* 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 <guillaume.perreal@irstea.fr>
*/
class EntityVisitor extends ClassVisitor
{
/**
* @var ClassMetadata[]
*/
protected $metadata = [];
public function __construct(array $metadata, \Irstea\PlantUmlBundle\Model\ClassFilterInterface $filter = null)
{
parent::__construct($filter);
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());
}
}