Completed
Push — master ( 40f739...c90891 )
by Maxim
03:13
created

Node::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 3
nc 1
nop 2
1
<?php
2
3
namespace Weew\ConfigSchema\Nodes;
4
5
use Weew\ConfigSchema\IConfigSchema;
6
use Weew\Validator\IConstraint;
7
use Weew\Validator\IValidationResult;
8
9
class Node implements INode {
10
    /**
11
     * @var IConfigSchema
12
     */
13
    protected $schema;
14
15
    /**
16
     * @var string
17
     */
18
    protected $key;
19
20
    /**
21
     * Node constructor.
22
     *
23
     * @param IConfigSchema $schema
24
     * @param string $key
25
     */
26
    public function __construct(IConfigSchema $schema, $key) {
27
        $this->key = $key;
28
        $this->schema = $schema;
29
    }
30
31
    /**
32
     * @param string $key
33
     * @param string $message
34
     *
35
     * @return IValueNode
36
     */
37
    public function hasValue($key, $message = null) {
38
        return $this->schema->hasValue($key, $message);
39
    }
40
41
    /**
42
     * @param string $key
43
     * @param string $message
44
     *
45
     * @return IStringNode
46
     */
47
    public function hasString($key, $message = null) {
48
        return $this->schema->hasString($key, $message);
49
    }
50
51
    /**
52
     * @param string $key
53
     * @param string $message
54
     *
55
     * @return INumericNode
56
     */
57
    public function hasNumber($key, $message = null) {
58
        return $this->schema->hasNumber($key, $message);
59
    }
60
61
    /**
62
     * @param string $key
63
     * @param string $message
64
     *
65
     * @return IBooleanNode
66
     */
67
    public function hasBoolean($key, $message = null) {
68
        return $this->schema->hasBoolean($key, $message);
69
    }
70
71
    /**
72
     * @param string $key
73
     * @param string $message
74
     *
75
     * @return IArrayNode
76
     */
77
    public function hasArray($key, $message = null) {
78
        return $this->schema->hasArray($key, $message);
79
    }
80
81
    /**
82
     * @param string $key
83
     * @param string $message
84
     *
85
     * @return IStringNode
86
     */
87
    public function hasArrayKeys($key, $message = null) {
88
        return $this->schema->hasArrayKeys($key, $message);
89
    }
90
91
    /**
92
     * @return null
93
     */
94
    public function assert() {
95
        return $this->schema->assert();
96
    }
97
98
    /**
99
     * @return IValidationResult
100
     */
101
    public function check() {
102
        return $this->schema->check();
103
    }
104
105
    /**
106
     * @param IConstraint $constraint
107
     *
108
     * @return $this
109
     */
110
    public function constraint(IConstraint $constraint) {
111
        $this->schema->constraint($this->key, $constraint);
112
113
        return $this;
114
    }
115
116
    /**
117
     * @param IConstraint[] $constraints
118
     *
119
     * @return $this
120
     */
121
    public function constraints(array $constraints) {
122
        $this->schema->constraints($this->key, $constraints);
123
124
        return $this;
125
    }
126
}
127