Completed
Pull Request — master (#108)
by Matt
04:36
created

DraftFour::rules()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace League\JsonGuard\RuleSets;
4
5
use League\JsonGuard\Constraints\AdditionalItems;
6
use League\JsonGuard\Constraints\AdditionalProperties;
7
use League\JsonGuard\Constraints\AllOf;
8
use League\JsonGuard\Constraints\AnyOf;
9
use League\JsonGuard\Constraints\Dependencies;
10
use League\JsonGuard\Constraints\Enum;
11
use League\JsonGuard\Constraints\Format;
12
use League\JsonGuard\Constraints\Items;
13
use League\JsonGuard\Constraints\Max;
14
use League\JsonGuard\Constraints\MaxItems;
15
use League\JsonGuard\Constraints\MaxLength;
16
use League\JsonGuard\Constraints\MaxProperties;
17
use League\JsonGuard\Constraints\Min;
18
use League\JsonGuard\Constraints\MinItems;
19
use League\JsonGuard\Constraints\MinLength;
20
use League\JsonGuard\Constraints\MinProperties;
21
use League\JsonGuard\Constraints\MultipleOf;
22
use League\JsonGuard\Constraints\Not;
23
use League\JsonGuard\Constraints\OneOf;
24
use League\JsonGuard\Constraints\Pattern;
25
use League\JsonGuard\Constraints\PatternProperties;
26
use League\JsonGuard\Constraints\Properties;
27
use League\JsonGuard\Constraints\Required;
28
use League\JsonGuard\Constraints\Type;
29
use League\JsonGuard\Constraints\UniqueItems;
30
use Psr\Container\ContainerInterface;
31
32
/**
33
 * The default rule set for JSON Schema Draft 4.
34
 * @see http://tools.ietf.org/html/draft-zyp-json-schema-04
35
 * @see  https://tools.ietf.org/html/draft-fge-json-schema-validation-00
36
 */
37
class DraftFour implements ContainerInterface
38
{
39
    use RuleSetTrait;
40
41
    protected $rules = [
42
        'additionalItems'      => AdditionalItems::class,
43
        'additionalProperties' => AdditionalProperties::class,
44
        'allOf'                => AllOf::class,
45
        'anyOf'                => AnyOf::class,
46
        'dependencies'         => Dependencies::class,
47
        'enum'                 => Enum::class,
48
        'format'               => Format::class,
49
        'items'                => Items::class,
50
        'maximum'              => Max::class,
51
        'maxItems'             => MaxItems::class,
52
        'maxLength'            => MaxLength::class,
53
        'maxProperties'        => MaxProperties::class,
54
        'minimum'              => Min::class,
55
        'minItems'             => MinItems::class,
56
        'minLength'            => MinLength::class,
57
        'minProperties'        => MinProperties::class,
58
        'multipleOf'           => MultipleOf::class,
59
        'not'                  => Not::class,
60
        'oneOf'                => OneOf::class,
61
        'pattern'              => Pattern::class,
62
        'patternProperties'    => PatternProperties::class,
63
        'properties'           => Properties::class,
64
        'required'             => Required::class,
65
        'type'                 => Type::class,
66
        'uniqueItems'          => UniqueItems::class,
67
    ];
68
69
    /**
70
     * {@inheritdoc}
71
     */
72 156
    protected function rules()
73
    {
74 156
        return $this->rules;
75
    }
76
77
    /**
78
     * {@inheritdoc}
79
     */
80 2
    protected function setRule($id, $constraint)
81
    {
82 2
        $this->rules[$id] = $constraint;
83 2
    }
84
}
85