Document   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 35
c 0
b 0
f 0
dl 0
loc 42
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A jsonSerialize() 0 6 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DH\Adf\Node\Block;
6
7
use DH\Adf\Builder\BlockquoteBuilder;
8
use DH\Adf\Builder\BulletListBuilder;
9
use DH\Adf\Builder\CodeblockBuilder;
10
use DH\Adf\Builder\ExpandBuilder;
11
use DH\Adf\Builder\ExtensionBuilder;
12
use DH\Adf\Builder\HeadingBuilder;
13
use DH\Adf\Builder\MediaGroupBuilder;
14
use DH\Adf\Builder\MediaSingleBuilder;
15
use DH\Adf\Builder\OrderedListBuilder;
16
use DH\Adf\Builder\PanelBuilder;
17
use DH\Adf\Builder\ParagraphBuilder;
18
use DH\Adf\Builder\RuleBuilder;
19
use DH\Adf\Builder\TableBuilder;
20
use DH\Adf\Builder\TaskListBuilder;
21
use DH\Adf\Node\BlockNode;
22
use DH\Adf\Node\Inline\Extension;
23
use JsonSerializable;
24
25
/**
26
 * @see https://developer.atlassian.com/cloud/jira/platform/apis/document/structure/#root-block-node
27
 */
28
class Document extends BlockNode implements JsonSerializable
29
{
30
    use BlockquoteBuilder;
31
    use BulletListBuilder;
32
    use TaskListBuilder;
33
    use CodeblockBuilder;
34
    use ExtensionBuilder;
35
    use HeadingBuilder;
36
    use MediaGroupBuilder;
37
    use MediaSingleBuilder;
38
    use OrderedListBuilder;
39
    use PanelBuilder;
40
    use ParagraphBuilder;
41
    use RuleBuilder;
42
    use TableBuilder;
43
    use ExpandBuilder;
44
45
    protected string $type = 'doc';
46
    protected array $allowedContentTypes = [
47
        Blockquote::class,
48
        BulletList::class,
49
        TaskList::class,
50
        CodeBlock::class,
51
        Extension::class,
52
        Heading::class,
53
        MediaGroup::class,
54
        MediaSingle::class,
55
        OrderedList::class,
56
        Panel::class,
57
        Paragraph::class,
58
        Rule::class,
59
        Table::class,
60
        Expand::class,
61
    ];
62
    private int $version = 1;
63
64
    public function jsonSerialize(): array
65
    {
66
        $result = parent::jsonSerialize();
67
        $result['version'] = $this->version;
68
69
        return $result;
70
    }
71
}
72