Passed
Pull Request — main (#21)
by
unknown
08:02
created

TaskList   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
c 1
b 0
f 0
dl 0
loc 35
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A load() 0 19 3
A getLocalId() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DH\Adf\Node\Block;
6
7
use DH\Adf\Builder\TaskItemBuilder;
8
use DH\Adf\Node\BlockNode;
9
use DH\Adf\Node\Child\TaskItem;
10
use DH\Adf\Node\Node;
11
use JsonSerializable;
12
13
class TaskList extends BlockNode implements JsonSerializable
14
{
15
    use TaskItemBuilder;
16
17
    protected string $type = 'taskList';
18
    protected array $allowedContentTypes = [
19
        TaskItem::class,
20
    ];
21
22
    private ?string $localId;
23
24
    public static function load(array $data, ?BlockNode $parent = null): BlockNode
25
    {
26
        self::checkNodeData(static::class, $data);
27
28
        $node = new self($parent);
29
30
        $node->localId = $data['attrs']['localId'] ?? null;
31
32
        // set content if defined
33
        if (\array_key_exists('content', $data)) {
34
            foreach ($data['content'] as $nodeData) {
35
                $class = Node::NODE_MAPPING[$nodeData['type']];
36
                $child = $class::load($nodeData, $node);
37
38
                $node->append($child);
39
            }
40
        }
41
42
        return $node;
43
    }
44
45
    public function getLocalId(): ?string
46
    {
47
        return $this->localId;
48
    }
49
}
50