GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

Uuid::isValid()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 1
1
<?php
2
3
namespace MysqlUuid;
4
5
use InvalidArgumentException;
6
use MysqlUuid\Formats\Format;
7
use MysqlUuid\Formats\PlainString;
8
9
/**
10
 * MySQL UUID format utilities
11
 */
12
class Uuid
13
{
14
    /**
15
     * The current UUID value under consideration
16
     *
17
     * @var string
18
     */
19
    protected $value;
20
21
    /**
22
     * @var Format
23
     */
24
    protected $format;
25
26
    /**
27
     * @var array<string,string>
28
     */
29
    protected $fields;
30
31
    /**
32
     * @param string $value  A UUID in any of the accepted formats
33
     * @param Format $format The format of the UUID (will be validated)
34
     */
35 8
    public function __construct($value, Format $format = null)
36
    {
37 8
        $this->value = $value;
38
39 8
        if ($format) {
40 2
            $this->format = $format;
41 2
        } else {
42 6
            $this->format = new PlainString();
43
        }
44 8
    }
45
46
    /**
47
     * Parses the value into fields (according to format)
48
     *
49
     * @throws InvalidArgumentException
50
     * @return void
51
     */
52 6
    protected function parse()
53
    {
54 6
        if (!isset($this->fields)) {
55 6
            $this->fields = $this->format->toFields($this->value);
56 6
        }
57
58 6
        if (!$this->fields) {
59 1
            throw new InvalidArgumentException('Cannot parse value to fields');
60
        }
61 5
    }
62
63
    /**
64
     * @param string $name
65
     * @return string
66
     * @throws InvalidArgumentException
67
     */
68 4
    public function getField($name)
69
    {
70 4
        $this->parse();
71 4
        return $this->fields[$name];
72
    }
73
74
    /**
75
     * @param string $name
76
     * @param string $value
77
     * @return void
78
     * @throws InvalidArgumentException
79
     */
80 2
    public function setField($name, $value)
81
    {
82 2
        $this->parse();
83 2
        $this->fields[$name] = $value;
84 2
    }
85
86
    /**
87
     * Checks whether the UUID appears valid for the specified input format
88
     *
89
     * The input format is set as the second constructor parameter. This method
90
     * will validate the $value passed to the constructor against the format.
91
     *
92
     * @return boolean
93
     */
94 2
    public function isValid()
95
    {
96 2
        return $this->format->isValid($this->value);
97
    }
98
99
    /**
100
     * Converts the UUID to the specified format
101
     *
102
     * @param Format $format
103
     * @return string
104
     * @throws InvalidArgumentException
105
     */
106 3
    public function toFormat(Format $format)
107
    {
108 3
        $this->parse();
109 2
        return $format->fromFields($this->fields);
110
    }
111
}
112