Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
CRAP
100.00% covered (success)
100.00%
1 / 1
Handler
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 apply
n/a
0 / 0
n/a
0 / 0
0
 properties
n/a
0 / 0
n/a
0 / 0
0
 capabilityErrorMessage
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray\Field\Schema;
6
7use Cosray\Field\Field;
8
9abstract class Handler
10{
11    abstract public function apply(object $meta, Field $field): void;
12
13    /** @return array<string, mixed> */
14    abstract public function properties(object $meta, Field $field): array;
15
16    /** @param class-string $capabilityClass */
17    protected function capabilityErrorMessage(Field $field, string $capabilityClass): string
18    {
19        $fieldType = $field::class;
20        $nodeType = $field->owner::class;
21
22        return (
23            "The field \"{$field->name}\" (type: {$fieldType}) of node {$nodeType} "
24                . "cannot be used with the capability {$capabilityClass}"
25        );
26    }
27}