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

RequestModelInstanceImpl::getModel()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 64
Code Lines 58

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 58
c 1
b 0
f 1
dl 0
loc 64
rs 8.9163
cc 2
nc 2
nop 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace Jabe\Model\Knd\ConstructionSupervision\Impl;
4
5
use Jabe\Model\Xml\{
6
    ModelBuilder,
7
    ModelInterface
8
};
9
use Jabe\Model\Knd\ConstructionSupervision\Impl\Instance\Request\{
10
    CitizenshipImpl,
11
    CompetentOrganizationImpl,
12
    ConstructionPermitImpl,
13
    CurrentDateImpl,
14
    DataImpl,
15
    DateBirthImpl,
16
    DateImpl,
17
    DelegateInfoImpl,
18
    DepartmentIdImpl,
19
    DepartmentNameImpl,
20
    DocnumberImpl,
21
    DocseriesImpl,
22
    DocumentPersonalImpl,
23
    EmailImpl,
24
    EndDate1Impl,
25
    FactAddressImpl,
26
    FIASObjectAddressImpl,
27
    FirstnameImpl,
28
    FullfioImpl,
29
    GenderImpl,
30
    GoalImpl,
31
    IsAddressManuallyRequiredImpl,
32
    IsPaperDocumentRequiredImpl,
33
    IssuedateImpl,
34
    IssueidPassportRFImpl,
35
    IssueorgImpl,
36
    IssuerImpl,
37
    IssuerTypeImpl,
38
    LandPlotCadastralNumberBlockImpl,
39
    LandPlotCadastralNumberImpl,
40
    LastnameImpl,
41
    MethodGettingResultsImpl,
42
    MiddlenameImpl,
43
    NameDocImpl,
44
    NameImpl,
45
    NumberImpl,
46
    ObjectNameImpl,
47
    OkatoImpl,
48
    OrderIdImpl,
49
    OrderStatusCodeImpl,
50
    OrganizationIDImpl,
51
    PhoneImpl,
52
    RecipientPersonalDataImpl,
53
    RegAddressImpl,
54
    RequestImpl,
55
    ServiceImpl,
56
    ShortProjectParametersImpl,
57
    SnilsImpl,
58
    StageDescriptionImpl,
59
    StartDate1Impl,
60
    TargetIdImpl,
61
    TargetNameImpl,
62
    TermImpl,
63
    TypeDocImpl
64
};
65
66
class RequestModelInstanceImpl
67
{
68
    private static $model;
69
    private static $modelBuilder;
70
71
    public static function getModel(): ModelInterface
72
    {
73
        if (self::$model === null) {
74
            $modelBuilder = self::getModelBuilder();
75
76
            CitizenshipImpl::registerType($modelBuilder);
77
            CompetentOrganizationImpl::registerType($modelBuilder);
78
            ConstructionPermitImpl::registerType($modelBuilder);
79
            CurrentDateImpl::registerType($modelBuilder);
80
            DataImpl::registerType($modelBuilder);
81
            DateBirthImpl::registerType($modelBuilder);
82
            DateImpl::registerType($modelBuilder);
83
            DelegateInfoImpl::registerType($modelBuilder);
84
            DepartmentIdImpl::registerType($modelBuilder);
85
            DepartmentNameImpl::registerType($modelBuilder);
86
            DocnumberImpl::registerType($modelBuilder);
87
            DocseriesImpl::registerType($modelBuilder);
88
            DocumentPersonalImpl::registerType($modelBuilder);
89
            EmailImpl::registerType($modelBuilder);
90
            EndDate1Impl::registerType($modelBuilder);
91
            FactAddressImpl::registerType($modelBuilder);
92
            FIASObjectAddressImpl::registerType($modelBuilder);
93
            FirstnameImpl::registerType($modelBuilder);
94
            FullfioImpl::registerType($modelBuilder);
95
            GenderImpl::registerType($modelBuilder);
96
            GoalImpl::registerType($modelBuilder);
97
            IsAddressManuallyRequiredImpl::registerType($modelBuilder);
98
            IsPaperDocumentRequiredImpl::registerType($modelBuilder);
99
            IssuedateImpl::registerType($modelBuilder);
100
            IssueidPassportRFImpl::registerType($modelBuilder);
101
            IssueorgImpl::registerType($modelBuilder);
102
            IssuerImpl::registerType($modelBuilder);
103
            IssuerTypeImpl::registerType($modelBuilder);
104
            LandPlotCadastralNumberBlockImpl::registerType($modelBuilder);
105
            LandPlotCadastralNumberImpl::registerType($modelBuilder);
106
            LastnameImpl::registerType($modelBuilder);
107
            MethodGettingResultsImpl::registerType($modelBuilder);
108
            MiddlenameImpl::registerType($modelBuilder);
109
            NameDocImpl::registerType($modelBuilder);
110
            NameImpl::registerType($modelBuilder);
111
            NumberImpl::registerType($modelBuilder);
112
            ObjectNameImpl::registerType($modelBuilder);
113
            OkatoImpl::registerType($modelBuilder);
114
            OrderIdImpl::registerType($modelBuilder);
115
            OrderStatusCodeImpl::registerType($modelBuilder);
116
            OrganizationIDImpl::registerType($modelBuilder);
117
            PhoneImpl::registerType($modelBuilder);
118
            RecipientPersonalDataImpl::registerType($modelBuilder);
119
            RegAddressImpl::registerType($modelBuilder);
120
            RequestImpl::registerType($modelBuilder);
121
            ServiceImpl::registerType($modelBuilder);
122
            ShortProjectParametersImpl::registerType($modelBuilder);
123
            SnilsImpl::registerType($modelBuilder);
124
            StageDescriptionImpl::registerType($modelBuilder);
125
            StartDate1Impl::registerType($modelBuilder);
126
            TargetIdImpl::registerType($modelBuilder);
127
            TargetNameImpl::registerType($modelBuilder);
128
            TermImpl::registerType($modelBuilder);
129
            TypeDocImpl::registerType($modelBuilder);
130
131
            self::$model = $modelBuilder->build();
132
        }
133
134
        return self::$model;
135
    }
136
137
    public static function getModelBuilder(): ModelBuilder
138
    {
139
        if (self::$modelBuilder === null) {
140
            self::$modelBuilder = ModelBuilder::createInstance(RequestModelConstants::MODEL_NAME);
141
        }
142
        return self::$modelBuilder;
143
    }
144
}
145