Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
71.43% covered (warning)
71.43%
5 / 7
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
SyntaxHandler
71.43% covered (warning)
71.43%
5 / 7
0.00% covered (danger)
0.00%
0 / 2
4.37
0.00% covered (danger)
0.00%
0 / 1
 apply
75.00% covered (warning)
75.00%
3 / 4
0.00% covered (danger)
0.00%
0 / 1
2.06
 properties
66.67% covered (warning)
66.67%
2 / 3
0.00% covered (danger)
0.00%
0 / 1
2.15
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray\Field\Schema;
6
7use Cosray\Exception\RuntimeException;
8use Cosray\Field\Capability\SyntaxAware;
9use Cosray\Field\Field;
10use Cosray\Schema\Syntax;
11use Override;
12
13class SyntaxHandler extends Handler
14{
15    #[Override]
16    public function apply(object $meta, Field $field): void
17    {
18        assert($meta instanceof Syntax, 'The registry maps #[Syntax] to this handler');
19
20        if ($field instanceof SyntaxAware) {
21            $field->syntaxes($meta->syntaxes);
22
23            return;
24        }
25
26        throw new RuntimeException($this->capabilityErrorMessage($field, SyntaxAware::class));
27    }
28
29    #[Override]
30    public function properties(object $meta, Field $field): array
31    {
32        if ($field instanceof SyntaxAware) {
33            return ['syntaxes' => $field->getSyntaxes()];
34        }
35
36        return [];
37    }
38}