Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
AllowsHandler
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
2 / 2
5
100.00% covered (success)
100.00%
1 / 1
 apply
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
4
 properties
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray\Field\Schema;
6
7use Cosray\Exception\RuntimeException;
8use Cosray\Field\Blocks;
9use Cosray\Field\Entries;
10use Cosray\Field\Field;
11use Cosray\Schema\Allows;
12use Override;
13
14class AllowsHandler extends Handler
15{
16    #[Override]
17    public function apply(object $meta, Field $field): void
18    {
19        if (($field instanceof Entries || $field instanceof Blocks) && $meta instanceof Allows) {
20            $field->allow(...$meta->types);
21
22            return;
23        }
24
25        throw new RuntimeException($this->capabilityErrorMessage($field, Entries::class));
26    }
27
28    #[Override]
29    public function properties(object $meta, Field $field): array
30    {
31        return [];
32    }
33}