TestModel::getModelBuilder()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
c 0
b 0
f 0
nc 2
nop 0
dl 0
loc 6
rs 10
1
<?php
2
3
namespace Tests\TestModel;
4
5
use Xml\{
6
    ModelBuilder,
7
    ModelInterface
8
};
9
use Tests\TestModel\Instance\{
10
    Animal,
11
    Animals,
12
    AnimalReference,
13
    Bird,
14
    ChildRelationshipDefinition,
15
    Description,
16
    FlightPartnerRef,
17
    FlyingAnimal,
18
    Guardian,
19
    GuardEgg,
20
    Mother,
21
    SpouseRef,
22
    FriendRelationshipDefinition,
23
    RelationshipDefinition,
24
    RelationshipDefinitionRef,
25
    Egg,
26
    FlightInstructor,
27
    Wings
28
};
29
30
class TestModel
31
{
32
    private static $model;
33
    private static $modelBuilder;
34
35
    public static function getTestModel(): ModelInterface
36
    {
37
        if (self::$model === null) {
38
            $modelBuilder = self::getModelBuilder();
39
40
            Animals::registerType($modelBuilder);
41
            Animal::registerType($modelBuilder);
42
            Description::registerType($modelBuilder);
43
            RelationshipDefinition::registerType($modelBuilder);
44
            RelationshipDefinitionRef::registerType($modelBuilder);
45
            FriendRelationshipDefinition::registerType($modelBuilder);
46
            ChildRelationshipDefinition::registerType($modelBuilder);
47
            AnimalReference::registerType($modelBuilder);
48
            FlightPartnerRef::registerType($modelBuilder);
49
            FlightInstructor::registerType($modelBuilder);
50
            FlyingAnimal::registerType($modelBuilder);
51
            Bird::registerType($modelBuilder);
52
            Guardian::registerType($modelBuilder);
53
            GuardEgg::registerType($modelBuilder);
54
            Mother::registerType($modelBuilder);
55
            SpouseRef::registerType($modelBuilder);
56
            Egg::registerType($modelBuilder);
57
            Wings::registerType($modelBuilder);
58
59
            self::$model = $modelBuilder->build();
60
        }
61
62
        return self::$model;
63
    }
64
65
    public static function getModelBuilder(): ModelBuilder
66
    {
67
        if (self::$modelBuilder === null) {
68
            self::$modelBuilder = ModelBuilder::createInstance(TestModelConstants::MODEL_NAME);
69
        }
70
        return self::$modelBuilder;
71
    }
72
}
73