Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
5 / 5
CRAP
100.00% covered (success)
100.00%
1 / 1
ItemListObjectStrategy
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
5 / 5
6
100.00% covered (success)
100.00%
1 / 1
 supports
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
2
 __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
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 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\Lists\ItemList;
6use Apie\Core\Lists\ItemSet;
7use Apie\Core\Metadata\ItemListMetadata;
8use Apie\Core\Metadata\StrategyInterface;
9use Apie\Core\Utils\HashmapUtils;
10use ReflectionClass;
11
12final class ItemListObjectStrategy implements StrategyInterface
13{
14    public static function supports(ReflectionClass $class): bool
15    {
16        return HashmapUtils::isList($class) || HashmapUtils::isSet($class);
17    }
18
19    /**
20     * @param ReflectionClass<ItemList|ItemSet> $class
21     */
22    public function __construct(private readonly ReflectionClass $class)
23    {
24    }
25
26    public function getCreationMetadata(ApieContext $context): ItemListMetadata
27    {
28        return new ItemListMetadata($this->class, true);
29    }
30
31    public function getModificationMetadata(ApieContext $context): ItemListMetadata
32    {
33        return new ItemListMetadata($this->class, true);
34    }
35
36    public function getResultMetadata(ApieContext $context): ItemListMetadata
37    {
38        return new ItemListMetadata($this->class, false);
39    }
40}