Passed
Push — master ( 823aee...b9b37f )
by Alec
13:15 queued 12s
created

AWidgetRevolverBuilder::processDefaults()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace AlecRabbit\Spinner\Core\Widget\A;
6
7
use AlecRabbit\Spinner\Core\Factory\RevolverFactory;
8
use AlecRabbit\Spinner\Core\Revolver\Contract\IRevolver;
9
use AlecRabbit\Spinner\Core\Widget\Contract\IWidgetRevolverBuilder;
10
use AlecRabbit\Spinner\Core\Widget\WidgetRevolver;
11
12
abstract class AWidgetRevolverBuilder extends ARevolverBuilder implements IWidgetRevolverBuilder
13
{
14
    protected ?IRevolver $styleRevolver = null;
15
    protected ?IRevolver $charRevolver = null;
16
17
18
    /** @inheritdoc */
19
    public function build(): IRevolver
20
    {
21
        return
22
            new WidgetRevolver(
23
                $this->styleRevolver ?? RevolverFactory::defaultStyleRevolver(),
24
                $this->charRevolver ?? RevolverFactory::defaultCharRevolver(),
25
            );
26
    }
27
28
29
    public function withStyleRevolver(IRevolver $styleRevolver): static
30
    {
31
        $clone = clone $this;
32
        $clone->styleRevolver = $styleRevolver;
33
        return $clone;
34
    }
35
36
    public function withCharRevolver(IRevolver $charRevolver): static
37
    {
38
        $clone = clone $this;
39
        $clone->charRevolver = $charRevolver;
40
        return $clone;
41
    }
42
}
43