1 | <?php |
||
9 | class Validator |
||
10 | { |
||
11 | /** |
||
12 | * @var Field[] |
||
13 | */ |
||
14 | private $fields = []; |
||
15 | |||
16 | /** |
||
17 | * @return Validator |
||
18 | */ |
||
19 | 3 | public static function build() |
|
20 | { |
||
21 | 3 | return new self(); |
|
22 | } |
||
23 | |||
24 | /** |
||
25 | * @return Field[] |
||
26 | */ |
||
27 | 3 | public function getFields(): array |
|
31 | |||
32 | /** |
||
33 | * @param Validator $validatorBuilder |
||
34 | * |
||
35 | * @return Validator |
||
36 | */ |
||
37 | 1 | public function merge(Validator $validatorBuilder): self |
|
45 | |||
46 | /** |
||
47 | * @param Field $field |
||
48 | * |
||
49 | * @return Field |
||
50 | */ |
||
51 | 7 | public function addRawField(Field $field) |
|
52 | { |
||
53 | 7 | if (array_key_exists($field->getName(), $this->fields)) { |
|
54 | 1 | throw new InvalidArgumentException(sprintf( |
|
55 | 1 | 'Field with name "%s" already exists.', |
|
56 | 1 | $field->getName() |
|
57 | )); |
||
58 | } |
||
59 | |||
60 | 7 | return $this->fields[$field->getName()] = $field; |
|
61 | } |
||
62 | |||
63 | /** |
||
64 | * @param string $name |
||
65 | * |
||
66 | * @return Field |
||
67 | */ |
||
68 | 5 | public function addField(string $name): Field |
|
72 | |||
73 | /** |
||
74 | * @param $data |
||
75 | * |
||
76 | * @return VerdictList |
||
77 | */ |
||
78 | 3 | public function validate($data): VerdictList |
|
91 | } |
||
92 |