Location::__construct()   A
last analyzed

Complexity

Conditions 3
Paths 4

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 6
nc 4
nop 4
dl 0
loc 11
ccs 0
cts 0
cp 0
crap 12
rs 10
c 1
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace LauLamanApps\ApplePassbook\MetaData;
6
7
class Location
8
{
9
    private float $latitude;
10
    private float $longitude;
11
    private float $altitude;
12
    private string $relevantText;
13
14
    public function __construct(float $latitude, float $longitude, ?float $altitude = null, ?string $relevantText = null)
15
    {
16
        $this->latitude = $latitude;
17
        $this->longitude = $longitude;
18
19
        if ($altitude) {
20
            $this->altitude = $altitude;
21
        }
22
23
        if ($relevantText) {
24
            $this->relevantText = $relevantText;
25
        }
26
    }
27
28
    public function setAltitude(float $altitude): void
29 4
    {
30
        $this->altitude = $altitude;
31 4
    }
32 4
33 4
    public function setRelevantText(string $relevantText): void
34 4
    {
35 4
        $this->relevantText = $relevantText;
36
    }
37 1
38
    /**
39 1
     * @return array<string, float|string>
40 1
     */
41
    public function toArray(): array
42 1
    {
43
        $data = [
44 1
            'latitude' => $this->latitude,
45 1
            'longitude' => $this->longitude,
46
        ];
47 4
48
        if (isset($this->altitude)) {
49
            $data['altitude'] = $this->altitude;
50 4
        }
51 4
52
        if (isset($this->relevantText)) {
53
            $data['relevantText'] = $this->relevantText;
54 4
        }
55 1
56
        return $data;
57
    }
58
}
59