Code Duplication    Length = 20-20 lines in 2 locations

src/ReflectionApi/AbstractTrait.php 1 location

@@ 7-26 (lines=20) @@
4
5
use Igni\Utils\Exception\ReflectionApiException;
6
7
trait AbstractTrait
8
{
9
    private $abstract = false;
10
11
    public function makeAbstract(bool $abstract = true): self
12
    {
13
        if (isset($this->final) && $this->final) {
14
            throw ReflectionApiException::forFinalAbstract();
15
        }
16
17
        $this->abstract = $abstract;
18
19
        return $this;
20
    }
21
22
    public function isAbstract(): bool
23
    {
24
        return $this->abstract;
25
    }
26
}
27

src/ReflectionApi/FinalTrait.php 1 location

@@ 7-26 (lines=20) @@
4
5
use Igni\Utils\Exception\ReflectionApiException;
6
7
trait FinalTrait
8
{
9
    private $final = false;
10
11
    public function makeFinal(bool $final = true): self
12
    {
13
        if (isset($this->abstract) && $this->abstract) {
14
            throw ReflectionApiException::forFinalAbstract();
15
        }
16
17
        $this->final = $final;
18
19
        return $this;
20
    }
21
22
    public function isFinal(): bool
23
    {
24
        return $this->final;
25
    }
26
}
27