Passed
Push — master ( 2fbd23...3c6f7d )
by Aleksei
01:50
created

WebTemplateBucket::addTemplateData()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 4
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace roxblnfk\SmartStream\Data;
6
7
class WebTemplateBucket extends DataBucket
8
{
9
    private ?string $template = null;
10
    private ?string $layout = null;
11
    private array $layoutData = [];
12
    private array $defaultData = [];
13
14
    public function getTemplate(): ?string
15
    {
16
        return $this->template;
17
    }
18
    public function getDefaultData(): array
19
    {
20
        return $this->defaultData;
21
    }
22
    public function getLayout(): ?string
23
    {
24
        return $this->layout;
25
    }
26
    public function getLayoutData(): array
27
    {
28
        return $this->layoutData;
29
    }
30
    public function getTemplateData(): array
31
    {
32
        return $this->data;
33
    }
34
35
    public function withLayout(string $layout, array $layoutData = []): self
36
    {
37
        $clone = clone $this;
38
        $clone->layout = $layout;
39
        $clone->layoutData = $layoutData;
40
        return $clone;
41
    }
42
    public function withTemplate(string $template): self
43
    {
44
        $clone = clone $this;
45
        $clone->template = $template;
46
        return $clone;
47
    }
48
    public function withAddedTemplateData(string $key, $value): self
49
    {
50
        $clone = clone $this;
51
        $clone->data[$key] = $value;
52
        return $clone;
53
    }
54
    public function withDefaultData(array $defaultData): self
55
    {
56
        $clone = clone $this;
57
        $clone->defaultData = $defaultData;
58
        return $clone;
59
    }
60
    public function withAddedDefaultData(string $key, $value): self
61
    {
62
        $clone = clone $this;
63
        $clone->defaultData[$key] = $value;
64
        return $clone;
65
    }
66
}
67