Test Failed
Push — main ( f68dd4...f46f5c )
by Bingo
14:33
created

ConstructionPermitImpl::getDate()

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 1
c 1
b 0
f 1
dl 0
loc 3
nc 1
nop 0
1
<?php
2
3
namespace Jabe\Model\Knd\ConstructionSupervision\Impl\Instance\Request;
4
5
use Jabe\Model\Xml\ModelBuilder;
6
use Jabe\Model\Xml\Impl\Instance\ModelElementInstanceImpl;
7
use Jabe\Model\Xml\Impl\Instance\ModelTypeInstanceContext;
8
use Jabe\Model\Xml\Type\ModelTypeInstanceProviderInterface;
9
use Jabe\Model\Knd\ConstructionSupervision\Impl\RequestModelConstants;
10
use Jabe\Model\Knd\ConstructionSupervision\Instance\Request\{
11
    ConstructionPermitInterface,
12
    DateInterface,
13
    IssuerInterface,
14
    NumberInterface,
15
    TermInterface
16
};
17
18
class ConstructionPermitImpl extends ModelElementInstanceImpl implements ConstructionPermitInterface
19
{
20
    private $date;
21
    private $issuer;
22
    private $number;
23
    private $term;
24
25
    public static function registerType(ModelBuilder $modelBuilder): void
26
    {
27
        $typeBuilder = $modelBuilder->defineType(
28
            ConstructionPermitInterface::class,
29
            RequestModelConstants::ELEMENT_NAME_CONSTRUCTION_PERMIT
30
        )
31
        ->namespaceUri(RequestModelConstants::MODEL_NAMESPACE)
32
        ->instanceProvider(
33
            new class implements ModelTypeInstanceProviderInterface
34
            {
35
                public function newInstance(ModelTypeInstanceContext $instanceContext): ConstructionPermitInterface
36
                {
37
                    return new ConstructionPermitImpl($instanceContext);
38
                }
39
            }
40
        );
41
42
        self::$date = $sequenceBuilder->element(DateInterface::class)
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $sequenceBuilder seems to be never defined.
Loading history...
43
        ->build();
44
        self::$issuer = $sequenceBuilder->element(IssuerInterface::class)
45
        ->build();
46
        self::$number = $sequenceBuilder->element(NumberInterface::class)
47
        ->build();
48
        self::$term = $sequenceBuilder->element(TermInterface::class)
49
        ->build();
50
51
        $typeBuilder->build();
52
    }
53
54
    public function __construct(ModelTypeInstanceContext $instanceContext)
55
    {
56
        parent::__construct($instanceContext);
57
    }
58
59
    public function getDate(): DateInterface
60
    {
61
        return self::$date->getChild($this);
62
    }
63
64
    public function getIssuer(): IssuerInterface
65
    {
66
        return self::$issuer->getChild($this);
67
    }
68
69
    public function getNumber(): NumberInterface
70
    {
71
        return self::$number->getChild($this);
72
    }
73
74
    public function getTerm(): TermInterface
75
    {
76
        return self::$term->getChild($this);
77
    }
78
}
79