BinaryIPv4AddressConverter   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
eloc 13
dl 0
loc 22
rs 10
c 3
b 0
f 0
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A convert() 0 13 4
1
<?php
2
3
namespace Acamposm\IPv4AddressConverter\Converters;
4
5
use Acamposm\IPv4AddressConverter\Enums\IPAddressFormatEnum as IPAddressFormat;
6
use Acamposm\IPv4AddressConverter\Traits\MutableIPv4AddressTrait as MutableIPv4Address;
7
8
class BinaryIPv4AddressConverter extends BaseAddressConverter
9
{
10
    use MutableIPv4Address;
11
12
    /**
13
     * Performs the conversion from the input format to Binary string.
14
     *
15
     * @return int|string
16
     */
17
    public function convert(): int | string
18
    {
19
        return match ($this->inputFormat) {
20
            IPAddressFormat::DECIMAL => $this->withDotNotation
21
                ? $this->fromDecimalToDottedBinary($this->address)
22
                : $this->fromDecimalToBinary($this->address),
23
            IPAddressFormat::HEXADECIMAL => $this->withDotNotation
24
                ? $this->fromHexadecimalToDottedBinary($this->address)
25
                : $this->fromHexadecimalToBinary($this->address),
26
            IPAddressFormat::LONG => $this->withDotNotation
27
                ? $this->fromLongToDottedBinary($this->address)
28
                : $this->fromLongToBinary($this->address),
0 ignored issues
show
Bug introduced by
It seems like $this->address can also be of type string; however, parameter $address of Acamposm\IPv4AddressConv...ter::fromLongToBinary() does only seem to accept integer, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

28
                : $this->fromLongToBinary(/** @scrutinizer ignore-type */ $this->address),
Loading history...
29
            default => $this->address,
30
        };
31
    }
32
}
33