QueryResolverOptions::isValidationNeeded()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 0
crap 2
1
<?php
2
declare(strict_types=1);
3
4
namespace Maba\Bundle\RestBundle\Entity;
5
6
use RuntimeException;
7
8
class QueryResolverOptions
9
{
10
    /**
11
     * @var string|null
12
     */
13
    private $parameterName;
14
15
    /**
16
     * @var string|null
17
     */
18
    private $denormalizationType;
19
20
    /**
21
     * @var string|null
22
     */
23
    private $denormalizationGroup;
24
25
    /**
26
     * @var ValidationOptions|null
27
     */
28
    private $validationOptions;
29
30 81
    public function __construct()
31
    {
32 81
        $this->validationOptions = new ValidationOptions();
33 81
    }
34
35 81
    public function setParameterName(string $parameterName): self
36
    {
37 81
        $this->parameterName = $parameterName;
38 81
        return $this;
39
    }
40
41 81
    public function setDenormalizationType(string $denormalizationType): self
42
    {
43 81
        $this->denormalizationType = $denormalizationType;
44 81
        return $this;
45
    }
46
47
    /**
48
     * @param string|null $denormalizationGroup
49
     * @return QueryResolverOptions
50
     */
51 81
    public function setDenormalizationGroup($denormalizationGroup): self
52
    {
53 81
        $this->denormalizationGroup = $denormalizationGroup;
54 81
        return $this;
55
    }
56
57
    /**
58
     * @param ValidationOptions|null $validationOptions
59
     * @return $this
60
     */
61 81
    public function setValidationOptions(ValidationOptions $validationOptions = null): self
62
    {
63 81
        $this->validationOptions = $validationOptions;
64 81
        return $this;
65
    }
66
67 81
    public function disableValidation(): self
68
    {
69 81
        $this->validationOptions = null;
70 81
        return $this;
71
    }
72
73 13
    public function getParameterName(): string
74
    {
75 13
        if ($this->parameterName === null) {
76
            throw new RuntimeException('parameterName was not set');
77
        }
78 13
        return $this->parameterName;
79
    }
80
81 85
    public function getDenormalizationType(): string
82
    {
83 85
        if ($this->denormalizationType === null) {
84
            throw new RuntimeException('denormalizationType was not set');
85
        }
86 85
        return $this->denormalizationType;
87
    }
88
89
    /**
90
     * return string|null
91
     */
92 17
    public function getDenormalizationGroup()
93
    {
94 17
        return $this->denormalizationGroup;
95
    }
96
97 15
    public function isValidationNeeded(): bool
98
    {
99 15
        return $this->validationOptions !== null && $this->validationOptions->isEnabled();
100
    }
101
102 13
    public function getValidationOptions(): ValidationOptions
103
    {
104 13
        if ($this->validationOptions === null) {
105
            throw new RuntimeException('No validationOptions available, call isValidationNeeded beforehand');
106
        }
107 13
        return $this->validationOptions;
108
    }
109
}
110