QueryResolverOptions   A
last analyzed

Complexity

Total Complexity 15

Size/Duplication

Total Lines 102
Duplicated Lines 0 %

Coupling/Cohesion

Components 3
Dependencies 1

Test Coverage

Coverage 91.18%

Importance

Changes 0
Metric Value
wmc 15
lcom 3
cbo 1
dl 0
loc 102
ccs 31
cts 34
cp 0.9118
rs 10
c 0
b 0
f 0

11 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A setParameterName() 0 5 1
A setDenormalizationType() 0 5 1
A setDenormalizationGroup() 0 5 1
A setValidationOptions() 0 5 1
A disableValidation() 0 5 1
A getParameterName() 0 7 2
A getDenormalizationType() 0 7 2
A getDenormalizationGroup() 0 4 1
A isValidationNeeded() 0 4 2
A getValidationOptions() 0 7 2
1
<?php
2
declare(strict_types=1);
3
4
namespace Paysera\Bundle\ApiBundle\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 96
    public function __construct()
31
    {
32 96
        $this->validationOptions = new ValidationOptions();
33 96
    }
34
35 96
    public function setParameterName(string $parameterName): self
36
    {
37 96
        $this->parameterName = $parameterName;
38 96
        return $this;
39
    }
40
41 96
    public function setDenormalizationType(string $denormalizationType): self
42
    {
43 96
        $this->denormalizationType = $denormalizationType;
44 96
        return $this;
45
    }
46
47
    /**
48
     * @param string|null $denormalizationGroup
49
     * @return QueryResolverOptions
50
     */
51 96
    public function setDenormalizationGroup($denormalizationGroup): self
52
    {
53 96
        $this->denormalizationGroup = $denormalizationGroup;
54 96
        return $this;
55
    }
56
57
    /**
58
     * @param ValidationOptions|null $validationOptions
59
     * @return $this
60
     */
61 96
    public function setValidationOptions(ValidationOptions $validationOptions = null): self
62
    {
63 96
        $this->validationOptions = $validationOptions;
64 96
        return $this;
65
    }
66
67 96
    public function disableValidation(): self
68
    {
69 96
        $this->validationOptions = null;
70 96
        return $this;
71
    }
72
73 27
    public function getParameterName(): string
74
    {
75 27
        if ($this->parameterName === null) {
76
            throw new RuntimeException('parameterName was not set');
77
        }
78 27
        return $this->parameterName;
79
    }
80
81 100
    public function getDenormalizationType(): string
82
    {
83 100
        if ($this->denormalizationType === null) {
84
            throw new RuntimeException('denormalizationType was not set');
85
        }
86 100
        return $this->denormalizationType;
87
    }
88
89
    /**
90
     * return string|null
91
     */
92 32
    public function getDenormalizationGroup()
93
    {
94 32
        return $this->denormalizationGroup;
95
    }
96
97 29
    public function isValidationNeeded(): bool
98
    {
99 29
        return $this->validationOptions !== null && $this->validationOptions->isEnabled();
100
    }
101
102 27
    public function getValidationOptions(): ValidationOptions
103
    {
104 27
        if ($this->validationOptions === null) {
105
            throw new RuntimeException('No validationOptions available, call isValidationNeeded beforehand');
106
        }
107 27
        return $this->validationOptions;
108
    }
109
}
110