ResponseNormalization::apply()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
crap 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Maba\Bundle\RestBundle\Annotation;
5
6
use Maba\Bundle\RestBundle\Entity\RestRequestOptions;
7
use Maba\Bundle\RestBundle\Service\Annotation\ReflectionMethodWrapper;
8
9
/**
10
 * @Annotation
11
 * @Target({"METHOD"})
12
 */
13
class ResponseNormalization implements RestAnnotationInterface
14
{
15
    /**
16
     * @var string|null
17
     */
18
    private $normalizationType;
19
20
    /**
21
     * @var string|null
22
     */
23
    private $normalizationGroup;
24
25 81
    public function __construct(array $options)
26
    {
27 81
        $this->setNormalizationType($options['normalizationType'] ?? null);
28 81
        $this->setNormalizationGroup($options['normalizationGroup'] ?? null);
29 81
    }
30
31
    /**
32
     * @param string|null $normalizationType
33
     * @return $this
34
     */
35 81
    private function setNormalizationType($normalizationType): self
36
    {
37 81
        $this->normalizationType = $normalizationType;
38 81
        return $this;
39
    }
40
41
    /**
42
     * @param string|null $normalizationGroup
43
     * @return $this
44
     */
45 81
    public function setNormalizationGroup($normalizationGroup): self
46
    {
47 81
        $this->normalizationGroup = $normalizationGroup;
48 81
        return $this;
49
    }
50
51 81
    public function isSeveralSupported(): bool
52
    {
53 81
        return false;
54
    }
55
56 81
    public function apply(RestRequestOptions $options, ReflectionMethodWrapper $reflectionMethod)
57
    {
58 81
        $options->setResponseNormalizationType($this->normalizationType);
59 81
        $options->setResponseNormalizationGroup($this->normalizationGroup);
60 81
    }
61
}
62