-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy pathNodeValidatorFactory.php
More file actions
35 lines (32 loc) · 1.2 KB
/
NodeValidatorFactory.php
File metadata and controls
35 lines (32 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
namespace RomaricDrigon\MetaYaml\NodeValidator;
use RomaricDrigon\MetaYaml\SchemaValidator;
use RomaricDrigon\MetaYaml\Exception\NodeValidatorException;
class NodeValidatorFactory
{
public function getValidator($name, $type, SchemaValidator $validator)
{
switch ($type) {
case 'number':
return new NumberNodeValidator($validator);
case 'text':
return new TextNodeValidator($validator);
case 'pattern':
return new PatternNodeValidator($validator);
case 'boolean':
return new BooleanNodeValidator($validator);
case 'enum':
return new EnumNodeValidator($validator);
case 'array':
return new ArrayNodeValidator($validator);
case 'prototype':
return new PrototypeNodeValidator($validator);
case 'choice':
return new ChoiceNodeValidator($validator);
case 'partial':
return new PartialNodeValidator($validator);
default:
throw new NodeValidatorException($name, 'Unknown validator type : '.$type, $this->path);
}
}
}