Code Duplication    Length = 49-49 lines in 2 locations

lib/API/Value/Parameter/Input/Latitude.php 1 location

@@ 10-58 (lines=49) @@
7
use Marek\OpenWeatherMap\API\Exception\InvalidArgumentException;
8
use Marek\OpenWeatherMap\API\Value\Parameter\GetParameterInterface;
9
10
class Latitude implements GetParameterInterface
11
{
12
    /**
13
     * @var float
14
     */
15
    protected $latitude;
16
17
    /**
18
     * Latitude constructor.
19
     *
20
     * @param float $latitude
21
     */
22
    public function __construct(float $latitude)
23
    {
24
        $this->validate($latitude);
25
        $this->latitude = $latitude;
26
    }
27
28
    /**
29
     * @return float
30
     */
31
    public function getLatitude()
32
    {
33
        return $this->latitude;
34
    }
35
36
    /**
37
     * {@inheritdoc}
38
     */
39
    public function getGetParameterValue()
40
    {
41
        return (string) $this->latitude;
42
    }
43
44
    /**
45
     * {@inheritdoc}
46
     */
47
    public function getGetParameterName()
48
    {
49
        return 'lat';
50
    }
51
52
    protected function validate(float $latitude): void
53
    {
54
        if ($latitude < -90 || $latitude > 90) {
55
            throw new InvalidArgumentException((string)$latitude, 'latitude', self::class);
56
        }
57
    }
58
}
59

lib/API/Value/Parameter/Input/Longitude.php 1 location

@@ 10-58 (lines=49) @@
7
use Marek\OpenWeatherMap\API\Exception\InvalidArgumentException;
8
use Marek\OpenWeatherMap\API\Value\Parameter\GetParameterInterface;
9
10
class Longitude implements GetParameterInterface
11
{
12
    /**
13
     * @var float
14
     */
15
    protected $longitude;
16
17
    /**
18
     * Longitude constructor.
19
     *
20
     * @param float $longitude
21
     */
22
    public function __construct(float $longitude)
23
    {
24
        $this->validate($longitude);
25
        $this->longitude = $longitude;
26
    }
27
28
    /**
29
     * @return float
30
     */
31
    public function getLongitude()
32
    {
33
        return $this->longitude;
34
    }
35
36
    /**
37
     * {@inheritdoc}
38
     */
39
    public function getGetParameterValue()
40
    {
41
        return (string) $this->longitude;
42
    }
43
44
    /**
45
     * {@inheritdoc}
46
     */
47
    public function getGetParameterName()
48
    {
49
        return 'lon';
50
    }
51
52
    protected function validate(float $longitude): void
53
    {
54
        if ($longitude < -180 || $longitude > 180) {
55
            throw new InvalidArgumentException((string)$longitude, 'longitude', self::class);
56
        }
57
    }
58
}
59