Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
88.89% covered (warning)
88.89%
8 / 9
80.00% covered (warning)
80.00%
4 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
CustomObjectStrategy
88.89% covered (warning)
88.89%
8 / 9
80.00% covered (warning)
80.00%
4 / 5
5.03
0.00% covered (danger)
0.00%
0 / 1
 supports
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getCreationMetadata
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getModificationMetadata
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getResultMetadata
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2namespace Apie\Core\Metadata\Strategy;
3
4use Apie\Core\Context\ApieContext;
5use Apie\Core\Metadata\CustomObjectsMetadata;
6use Apie\Core\Metadata\MetadataInterface;
7use Apie\Core\Metadata\StrategyInterface;
8use BcMath\Number;
9use GMP;
10use ReflectionClass;
11use Uri\Rfc3986\Uri;
12
13class CustomObjectStrategy implements StrategyInterface
14{
15    public static function supports(ReflectionClass $class): bool
16    {
17        return in_array($class->name, [
18            Uri::class,
19            GMP::class,
20            Number::class,
21        ]);
22    }
23
24    /**
25     * @param ReflectionClass<covariant object> $class
26     */
27    public function __construct(private ReflectionClass $class)
28    {
29    }
30
31    public function getCreationMetadata(ApieContext $context): MetadataInterface
32    {
33        return new CustomObjectsMetadata($this->class);
34    }
35
36    public function getModificationMetadata(ApieContext $context): MetadataInterface
37    {
38        return new CustomObjectsMetadata($this->class);
39    }
40
41    public function getResultMetadata(ApieContext $context): MetadataInterface
42    {
43        return new CustomObjectsMetadata($this->class);
44    }
45}