@@ 19-55 (lines=37) @@ | ||
16 | /** |
|
17 | * @author John Kleijn <[email protected]> |
|
18 | */ |
|
19 | class OpenApiFactory implements StandardFactory |
|
20 | { |
|
21 | /** |
|
22 | * @var DefinitionValidator|null |
|
23 | */ |
|
24 | private $validator; |
|
25 | ||
26 | /** |
|
27 | * Repository constructor. |
|
28 | * |
|
29 | * @param DefinitionValidator|null $validator |
|
30 | */ |
|
31 | public function __construct(DefinitionValidator $validator = null) |
|
32 | { |
|
33 | $this->validator = $validator; |
|
34 | } |
|
35 | ||
36 | /** |
|
37 | * @param string $uri |
|
38 | * @param \stdClass $definition |
|
39 | * |
|
40 | * @return Description |
|
41 | */ |
|
42 | public function build(string $uri, \stdClass $definition): Description |
|
43 | { |
|
44 | $resolver = new RefResolver($definition, $uri); |
|
45 | ||
46 | /** @var \stdClass $definition */ |
|
47 | $description = new OpenApiDescription(new Document($uri, $definition = $resolver->resolve())); |
|
48 | ||
49 | if ($this->validator) { |
|
50 | $this->validator->validate($definition); |
|
51 | } |
|
52 | ||
53 | return $description; |
|
54 | } |
|
55 | } |
|
56 |
@@ 19-55 (lines=37) @@ | ||
16 | /** |
|
17 | * @author John Kleijn <[email protected]> |
|
18 | */ |
|
19 | class RamlFactory implements StandardFactory |
|
20 | { |
|
21 | /** |
|
22 | * @var DefinitionValidator|null |
|
23 | */ |
|
24 | private $validator; |
|
25 | ||
26 | /** |
|
27 | * Repository constructor. |
|
28 | * |
|
29 | * @param DefinitionValidator|null $validator |
|
30 | */ |
|
31 | public function __construct(DefinitionValidator $validator = null) |
|
32 | { |
|
33 | $this->validator = $validator; |
|
34 | } |
|
35 | ||
36 | /** |
|
37 | * @param string $uri |
|
38 | * @param \stdClass $definition |
|
39 | * |
|
40 | * @return Description |
|
41 | */ |
|
42 | public function build(string $uri, \stdClass $definition): Description |
|
43 | { |
|
44 | $resolver = new RefResolver($definition, $uri); |
|
45 | ||
46 | /** @var \stdClass $definition */ |
|
47 | $description = new RamlDescription(new Document($uri, $definition = $resolver->resolve())); |
|
48 | ||
49 | if ($this->validator) { |
|
50 | $this->validator->validate($definition); |
|
51 | } |
|
52 | ||
53 | return $description; |
|
54 | } |
|
55 | } |
|
56 |