UserTag::getUsers()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Application\Model;
6
7
use Application\Repository\UserTagRepository;
8
use Application\Traits\HasColor;
9
use Doctrine\Common\Collections\ArrayCollection;
10
use Doctrine\Common\Collections\Collection;
11
use Doctrine\ORM\Mapping as ORM;
12
use Ecodev\Felix\Model\Traits\HasName;
13
14
/**
15
 * A tag to be used on a user.
16
 */
17
#[ORM\UniqueConstraint(name: 'unique_name', columns: ['name'])]
18
#[ORM\Entity(UserTagRepository::class)]
19
class UserTag extends AbstractModel
20
{
21
    use HasColor;
22
    use HasName;
23
24
    /**
25
     * @var Collection<int, User>
26
     */
27
    #[ORM\ManyToMany(targetEntity: User::class, inversedBy: 'userTags')]
28
    private Collection $users;
29
30 4
    public function __construct()
31
    {
32 4
        $this->users = new ArrayCollection();
33
    }
34
35 1
    public function getUsers(): Collection
36
    {
37 1
        return $this->users;
38
    }
39
40
    /**
41
     * Add user.
42
     */
43 1
    public function addUser(User $user): void
44
    {
45 1
        if (!$this->users->contains($user)) {
46 1
            $this->users->add($user);
47 1
            $user->userTagAdded($this);
48
        }
49
    }
50
51
    /**
52
     * Remove user.
53
     */
54 1
    public function removeUser(User $user): void
55
    {
56 1
        $this->users->removeElement($user);
57 1
        $user->userTagRemoved($this);
58
    }
59
}
60