EntityDecorator.php 1021 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

/*
 * © 2016 IRSTEA
 * Guillaume Perréal <guillaume.perreal@irstea.fr>
 * Tous droits réservés.
 */

namespace Irstea\PlantUmlBundle\Doctrine;

use Doctrine\ORM\Mapping\ClassMetadata;
use Irstea\PlantUmlBundle\Model\ClassVisitorInterface;
use Irstea\PlantUmlBundle\Model\NodeInterface;

/**
 * Description of EntityDecorator
 *
 * @author Guillaume Perréal <guillaume.perreal@irstea.fr>
 */
class EntityDecorator extends AbstractDoctrineDecorator
{
22
    public function decorate(\ReflectionClass $class, NodeInterface $node, ClassVisitorInterface $visitor)
23
    {
24
25
26
27
28
29
30
31
32
33
34
35
        $this->withMetadata(
            function ($metadata) use($node) {
                if ($metadata->isMappedSuperclass) {
                    $node->addStereotype('mappedSuperClass');
                } elseif($metadata->isEmbeddedClass) {
                    $node->addStereotype('embedded');
                } else {
                    $node->addStereotype('entity');
                }
            },
            $class
        );
36
37
    }
}