Code Duplication    Length = 28-28 lines in 2 locations

src/xsBase64Binary.php 1 location

@@ 21-48 (lines=28) @@
18
 *      whitespace in between the necessary characters and the equals sign(s).
19
 * @package AlgoWeb\xsdTypes
20
 */
21
class xsBase64Binary extends xsAnySimpleType
22
{
23
    use LengthTrait;
24
25
    /**
26
     * Construct.
27
     *
28
     * @param string $value
29
     */
30
    public function __construct($value)
31
    {
32
        parent::__construct($value);
33
        $this->setWhiteSpaceFacet('collapse');
34
    }
35
36
    protected function isOK()
37
    {
38
        $this->checkLength($this->value);
39
        if (!(bool)preg_match('/^[a-zA-Z0-9\/\r\n+\s]*={0,2}$/', $this->value)) {
40
            throw new \InvalidArgumentException('the value ' . $this->value . ' is not a valid base64 encoded string');
41
        }
42
        $lengthOfValue = strlen($this->value);
43
        if ($lengthOfValue % 2 != 0) {
44
            throw new \InvalidArgumentException('the value ' . $this->value . ' is not a valid base64 encoded string' .
45
                'as it dose not contain an even number of characters');
46
        }
47
    }
48
}
49

src/xsHexBinary.php 1 location

@@ 13-40 (lines=28) @@
10
 * For example, 0FB8 and 0fb8 are two equal xsd:hexBinary representations consisting of two octets.
11
 * @package AlgoWeb\xsdTypes
12
 */
13
class xsHexBinary extends xsAnySimpleType
14
{
15
    use LengthTrait;
16
17
    /**
18
     * Construct.
19
     *
20
     * @param string $value
21
     */
22
    public function __construct($value)
23
    {
24
        parent::__construct($value);
25
        $this->setWhiteSpaceFacet('collapse');
26
    }
27
28
    protected function isOK()
29
    {
30
        $this->checkLength($this->value);
31
        $lengthOfValue = strlen($this->value);
32
        if ($lengthOfValue % 2 != 0) {
33
            throw new \InvalidArgumentException('the value ' . $this->value . 'is not valid; characters must appear' .
34
                'in pairs');
35
        }
36
        if (!ctype_xdigit($this->value)) {
37
            throw new \InvalidArgumentException('the value ' . $this->value . 'contains invalid characters');
38
        }
39
    }
40
}
41