Completed
Push — master ( e95f12...168b8f )
by Tobias
01:40
created

CustomerBillingAddress   A

Complexity

Total Complexity 21

Size/Duplication

Total Lines 207
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 41.94%

Importance

Changes 0
Metric Value
wmc 21
lcom 1
cbo 0
dl 0
loc 207
ccs 26
cts 62
cp 0.4194
rs 10
c 0
b 0
f 0

15 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A getCareOf() 0 4 1
A withCareOf() 0 7 1
A isUseCareOfAsAttention() 0 4 1
A withUseCareOfAsAttention() 0 7 1
A getStreetAddress() 0 4 1
A withStreetAddress() 0 7 1
A getZipCode() 0 4 1
A withZipCode() 0 7 1
A getCity() 0 4 1
A withCity() 0 7 1
A getCountry() 0 4 1
A withCountry() 0 7 1
C toArray() 0 24 7
A createFromArray() 0 12 1
1
<?php
2
3
namespace Billogram\Model\Customer;
4
5
use Billogram\Model\CreatableFromArray;
6
7
/**
8
 * @author Ibrahim Hizeoui <[email protected]>
9
 */
10
class CustomerBillingAddress implements CreatableFromArray
11
{
12
    /**
13
     * @var string
14
     */
15
    private $careOf;
16
17
    /**
18
     * @var bool
19
     */
20
    private $useCareOfAsAttention;
21
22
    /**
23
     * @var string
24
     */
25
    private $streetAddress;
26
27
    /**
28
     * @var string
29
     */
30
    private $zipCode;
31
32
    /**
33
     * @var string
34
     */
35
    private $city;
36
37
    /**
38
     * @var string
39
     */
40
    private $country;
41
42 7
    public function __construct()
43
    {
44 7
    }
45
46
    /**
47
     * @return string
48
     */
49
    public function getCareOf()
50
    {
51
        return $this->careOf;
52
    }
53
54
    /**
55
     * @param string $careOf
56
     *
57
     * @return CustomerBillingAddress
58
     */
59
    public function withCareOf(string $careOf)
60
    {
61
        $new = clone $this;
62
        $new->careOf = $careOf;
63
64
        return $new;
65
    }
66
67
    /**
68
     * @return bool
69
     */
70
    public function isUseCareOfAsAttention()
71
    {
72
        return $this->useCareOfAsAttention;
73
    }
74
75
    /**
76
     * @param bool $useCareOfAsAttention
77
     *
78
     * @return CustomerBillingAddress
79
     */
80
    public function withUseCareOfAsAttention(bool $useCareOfAsAttention)
81
    {
82
        $new = clone $this;
83
        $new->useCareOfAsAttention = $useCareOfAsAttention;
84
85
        return $new;
86
    }
87
88
    /**
89
     * @return string
90
     */
91
    public function getStreetAddress()
92
    {
93
        return $this->streetAddress;
94
    }
95
96
    /**
97
     * @param string $streetAddress
98
     *
99
     * @return CustomerBillingAddress
100
     */
101
    public function withStreetAddress(string $streetAddress)
102
    {
103
        $new = clone $this;
104
        $new->streetAddress = $streetAddress;
105
106
        return $new;
107
    }
108
109
    /**
110
     * @return string
111
     */
112
    public function getZipCode()
113
    {
114
        return $this->zipCode;
115
    }
116
117
    /**
118
     * @param string $zipCode
119
     *
120
     * @return CustomerBillingAddress
121
     */
122
    public function withZipCode(string $zipCode)
123
    {
124
        $new = clone $this;
125
        $new->zipCode = $zipCode;
126
127
        return $new;
128
    }
129
130
    /**
131
     * @return string
132
     */
133
    public function getCity()
134
    {
135
        return $this->city;
136
    }
137
138
    /**
139
     * @param string $city
140
     *
141
     * @return CustomerBillingAddress
142
     */
143
    public function withCity(string $city)
144
    {
145
        $new = clone $this;
146
        $new->city = $city;
147
148
        return $new;
149
    }
150
151
    /**
152
     * @return string
153
     */
154
    public function getCountry()
155
    {
156
        return $this->country;
157
    }
158
159
    /**
160
     * @param string $country
161
     *
162
     * @return CustomerBillingAddress
163
     */
164
    public function withCountry(string $country)
165
    {
166
        $new = clone $this;
167
        $new->country = $country;
168
169
        return $new;
170
    }
171
172 2
    public function toArray()
173
    {
174 2
        $data = [];
175 2
        if ($this->careOf !== null) {
176 2
            $data['careof'] = $this->careOf;
177
        }
178 2
        if ($this->useCareOfAsAttention !== null) {
179 2
            $data['use_careof_as_attention'] = $this->useCareOfAsAttention;
180
        }
181 2
        if ($this->streetAddress !== null) {
182 2
            $data['street_address'] = $this->streetAddress;
183
        }
184 2
        if ($this->zipCode !== null) {
185 2
            $data['zipcode'] = $this->zipCode;
186
        }
187 2
        if ($this->city !== null) {
188 2
            $data['city'] = $this->city;
189
        }
190 2
        if ($this->country !== null) {
191 2
            $data['country'] = $this->country;
192
        }
193
194 2
        return $data;
195
    }
196
197
    /**
198
     * Create an API response object from the HTTP response from the API server.
199
     *
200
     * @param array $data
201
     *
202
     * @return self
203
     */
204 7
    public static function createFromArray(array $data)
205
    {
206 7
        $model = new self();
207 7
        $model->careOf = $data['careof'] ?? null;
208 7
        $model->useCareOfAsAttention = $data['use_careof_as_attention'] ?? null;
209 7
        $model->streetAddress = $data['street_address'] ?? null;
210 7
        $model->zipCode = $data['zipcode'] ?? null;
211 7
        $model->city = $data['city'] ?? null;
212 7
        $model->country = $data['country'] ?? null;
213
214 7
        return $model;
215
    }
216
}
217