Passed
Push — master ( 3456a7...4e79a2 )
by Alexander
02:34
created

OneOfDto   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 7
dl 0
loc 22
rs 10
c 2
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getAttributeLabels() 0 6 1
A getAttributeTranslator() 0 3 1
A __construct() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Validator\Tests\Support\Data;
6
7
use Yiisoft\Validator\AttributeTranslator\ArrayAttributeTranslator;
8
use Yiisoft\Validator\AttributeTranslatorInterface;
9
use Yiisoft\Validator\AttributeTranslatorProviderInterface;
10
use Yiisoft\Validator\Rule\OneOf;
11
12
#[OneOf(['a', 'b', 'c'])]
13
final class OneOfDto implements AttributeTranslatorProviderInterface
14
{
15
    public function __construct(
16
        public ?int $a = null,
17
        public ?int $b = null,
18
        public ?int $c = null,
19
    ) {
20
    }
21
22
    public function getAttributeLabels(): array
23
    {
24
        return [
25
            'a' => 'A',
26
            'b' => 'B',
27
            'c' => 'C',
28
        ];
29
    }
30
31
    public function getAttributeTranslator(): ?AttributeTranslatorInterface
32
    {
33
        return new ArrayAttributeTranslator($this->getAttributeLabels());
34
    }
35
}
36