BaseValidator   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 70
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 8

Importance

Changes 0
Metric Value
dl 0
loc 70
rs 10
c 0
b 0
f 0
wmc 2
lcom 0
cbo 8

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getValidTypes() 0 4 1
A getValidFormats() 0 4 1
1
<?php namespace CMPayments\SchemaValidator;
2
3
use CMPayments\SchemaValidator\Exceptions\ValidateException;
4
use CMPayments\SchemaValidator\Validators\ArrayTrait;
5
use CMPayments\SchemaValidator\Validators\EnumTrait;
6
use CMPayments\SchemaValidator\Validators\ErrorTrait;
7
use CMPayments\SchemaValidator\Validators\FormatTrait;
8
use CMPayments\SchemaValidator\Validators\IntegerTrait;
9
use CMPayments\SchemaValidator\Validators\NumberTrait;
10
use CMPayments\SchemaValidator\Validators\StringTrait;
11
use CMPayments\SchemaValidator\Validators\RegexTrait;
12
13
/**
14
 * Class BaseValidator
15
 *
16
 * @package CMPayments\SchemaValidator
17
 * @Author  Boy Wijnmaalen <[email protected]>
18
 * @Author  Rob Theeuwes <[email protected]>
19
 */
20
class BaseValidator
21
{
22
    use ErrorTrait;
23
    use ArrayTrait;
24
    use EnumTrait;
25
    use FormatTrait;
26
    use IntegerTrait;
27
    use NumberTrait;
28
    use StringTrait;
29
    use RegexTrait;
30
31
    const TYPE   = 'type';
32
    const FORMAT = 'format';
33
34
    // Types
35
    const _ARRAY  = 'array';
36
    const BOOLEAN = 'boolean';
37
    const DOUBLE  = 'double';
38
    const INTEGER = 'integer';
39
    const NUMBER  = 'number';
40
    const OBJECT  = 'object';
41
    const STRING  = 'string';
42
    const CLOSURE = 'closure';
43
    const _NULL   = 'null';
44
45
    // String formats
46
    const DATE        = 'date';
47
    const DATETIME    = 'datetime';
48
    const EMAIL       = 'email';
49
    const TIME        = 'time';
50
    const UTC_SECONDS = 'utc-seconds';
51
    const URL         = 'url';
52
53
    // Valid types for the items in $schema->properties
54
    private $validTypes = [
55
        self::_ARRAY,
56
        self::BOOLEAN,
57
        self::NUMBER,
58
        self::_NULL,
59
        self::OBJECT,
60
        self::STRING
61
    ];
62
63
    // Valid formats for string typed items
64
    private $validFormats = [
65
        self::DATE,
66
        self::DATETIME,
67
        self::EMAIL,
68
        self::TIME,
69
        self::UTC_SECONDS,
70
        self::URL
71
    ];
72
73
    /**
74
     * @return array
75
     * @throws ValidateException
76
     */
77
    public function getValidTypes()
78
    {
79
        return $this->validTypes;
80
    }
81
82
    /**
83
     * @return array
84
     */
85
    public function getValidFormats()
86
    {
87
        return $this->validFormats;
88
    }
89
}
90