Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 34
0.00% covered (danger)
0.00%
0 / 12
CRAP
0.00% covered (danger)
0.00%
0 / 1
Benutzergruppe
0.00% covered (danger)
0.00%
0 / 34
0.00% covered (danger)
0.00%
0 / 12
380
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 __toString
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getBeschreibung
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setBeschreibung
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getLfdnr
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getName
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setName
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getBenutzer
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
6
 addBenutzer
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
12
 removeBenutzer
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
12
 removeBenutzerBenutzergruppe
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
6
 addBenutzerBenutzergruppe
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3declare(strict_types=1);
4
5namespace Satag\AmicronEntityBundle\Entity;
6
7use Doctrine\Common\Collections\ArrayCollection;
8use Doctrine\Common\Collections\Collection;
9use Doctrine\DBAL\Types\Types;
10use Doctrine\ORM\Mapping as ORM;
11use Satag\AmicronEntityBundle\Traits\BlameableEntity;
12use Satag\AmicronEntityBundle\Traits\BlameableEntityInterface;
13
14#[ORM\Entity]
15#[ORM\Table(name: 'BENUTZERGRUPPEN')]
16#[ORM\UniqueConstraint(name: 'BENUTZERGRUPPEN_UK', columns: ['name'])]
17class Benutzergruppe extends AbstractAmicronEntity implements BlameableEntityInterface, \Stringable
18{
19    use BlameableEntity;
20
21    #[ORM\Column(name: 'beschreibung', type: Types::TEXT, nullable: true)]
22    private ?string $beschreibung = null;
23
24    #[ORM\Column(name: 'lfdnr', type: Types::INTEGER, nullable: false)]
25    #[ORM\Id]
26    #[ORM\GeneratedValue(strategy: 'SEQUENCE')]
27    #[ORM\SequenceGenerator(sequenceName: 'GEN_LFDNR', allocationSize: 1, initialValue: 1)]
28    public private(set) ?int $lfdnr = null;
29
30    #[ORM\Column(name: 'name', type: Types::STRING, length: 20, nullable: true)]
31    private ?string $name = null;
32
33    /**
34     * @var Collection<int, BenutzerBenutzergruppen>
35     */
36    #[ORM\OneToMany(mappedBy: 'benutzergruppe', targetEntity: BenutzerBenutzergruppen::class, cascade: ['persist'], orphanRemoval: true)]
37    private Collection $benutzerBenutzergruppen;
38
39    public function __construct()
40    {
41        $this->benutzerBenutzergruppen = new ArrayCollection();
42    }
43
44    #[\Override]
45    public function __toString(): string
46    {
47        return \sprintf('%s (%s)', $this->getName(), $this->lfdnr);
48    }
49
50    public function getBeschreibung(): ?string
51    {
52        return $this->beschreibung;
53    }
54
55    public function setBeschreibung(?string $beschreibung): self
56    {
57        $this->beschreibung = $beschreibung;
58
59        return $this;
60    }
61
62    public function getLfdnr(): ?int
63    {
64        return $this->lfdnr;
65    }
66
67    public function getName(): ?string
68    {
69        return $this->name;
70    }
71
72    public function setName(?string $name): self
73    {
74        $this->name = $name;
75
76        return $this;
77    }
78
79    /**
80     * @return Collection<int, Benutzer>
81     */
82    public function getBenutzer(): Collection
83    {
84        $benutzer = new ArrayCollection();
85        foreach ($this->benutzerBenutzergruppen as $benutzerBenutzergruppen) {
86            $benutzer->add($benutzerBenutzergruppen->getBenutzer());
87        }
88
89        return $benutzer;
90    }
91
92    public function addBenutzer(Benutzer $benutzer): void
93    {
94        foreach ($this->benutzerBenutzergruppen as $benutzerBenutzergruppen) {
95            if ($benutzerBenutzergruppen->getBenutzer() === $benutzer) {
96                return;
97            }
98        }
99
100        $benutzerBenutzergruppen = new BenutzerBenutzergruppen($benutzer, $this);
101        $this->benutzerBenutzergruppen->add($benutzerBenutzergruppen);
102        $this->addBenutzerBenutzergruppe($benutzerBenutzergruppen);
103    }
104
105    public function removeBenutzer(Benutzer $benutzer): void
106    {
107        foreach ($this->benutzerBenutzergruppen as $benutzerBenutzergruppe) {
108            if ($benutzerBenutzergruppe->getBenutzer() === $benutzer) {
109                $this->removeBenutzerBenutzergruppe($benutzerBenutzergruppe);
110
111                return;
112            }
113        }
114    }
115
116    public function removeBenutzerBenutzergruppe(BenutzerBenutzergruppen $benutzerBenutzergruppen): void
117    {
118        if (!$this->benutzerBenutzergruppen->contains($benutzerBenutzergruppen)) {
119            return;
120        }
121
122        $this->benutzerBenutzergruppen->removeElement($benutzerBenutzergruppen);
123
124        // update the owning side(s)
125        $benutzerBenutzergruppen->getBenutzer()?->removeBenutzerBenutzergruppe(
126            $benutzerBenutzergruppen
127        );
128        $benutzerBenutzergruppen->setBenutzergruppe(null);
129    }
130
131    public function addBenutzerBenutzergruppe(BenutzerBenutzergruppen $benutzerBenutzergruppen): void
132    {
133        if ($this->benutzerBenutzergruppen->contains($benutzerBenutzergruppen)) {
134            return;
135        }
136
137        $this->benutzerBenutzergruppen->add($benutzerBenutzergruppen);
138        $benutzerBenutzergruppen->getBenutzer()?->addBenutzerBenutzergruppe($benutzerBenutzergruppen);
139    }
140}