Passed
Push — master ( de3d61...be839c )
by Alec
13:42 queued 13s
created

LoopSettings   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 9
c 0
b 0
f 0
dl 0
loc 40
rs 10
wmc 7

7 Methods

Rating   Name   Duplication   Size   Complexity  
A isAttachHandlersEnabled() 0 3 1
A isAutoStartEnabled() 0 3 1
A setAttachHandlersOption() 0 4 1
A isSignalProcessingAvailable() 0 3 1
A __construct() 0 6 1
A isLoopAvailable() 0 3 1
A setOptionAutoStart() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
6
namespace AlecRabbit\Spinner\Core\Settings;
7
8
use AlecRabbit\Spinner\Contract\Option\OptionAttachHandlers;
9
use AlecRabbit\Spinner\Contract\Option\OptionAutoStart;
10
use AlecRabbit\Spinner\Core\Settings\Contract\ILoopSettings;
11
12
final class LoopSettings implements ILoopSettings
13
{
14
    public function __construct(
15
        protected bool $loopAvailable,
16
        protected OptionAutoStart $optionAutoStart,
17
        protected bool $signalProcessingAvailable,
18
        protected OptionAttachHandlers $optionAttachHandlers,
19
    ) {
20
    }
21
22
    public function isLoopAvailable(): bool
23
    {
24
        return $this->loopAvailable;
25
    }
26
27
    public function isAutoStartEnabled(): bool
28
    {
29
        return $this->optionAutoStart === OptionAutoStart::ENABLED;
30
    }
31
32
    public function setOptionAutoStart(OptionAutoStart $optionAutoStart): ILoopSettings
33
    {
34
        $this->optionAutoStart = $optionAutoStart;
35
        return $this;
36
    }
37
38
    public function isAttachHandlersEnabled(): bool
39
    {
40
        return $this->optionAttachHandlers === OptionAttachHandlers::ENABLED;
41
    }
42
43
    public function setAttachHandlersOption(OptionAttachHandlers $optionAttachHandlers): ILoopSettings
44
    {
45
        $this->optionAttachHandlers = $optionAttachHandlers;
46
        return $this;
47
    }
48
49
    public function isSignalProcessingAvailable(): bool
50
    {
51
        return $this->signalProcessingAvailable;
52
    }
53
}
54