| 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 |