Passed
Push — master ( bd8f44...48c747 )
by Nico
15:42 queued 06:57
created

StuConfigSettingEnum   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Test Coverage

Coverage 58.33%

Importance

Changes 0
Metric Value
eloc 34
c 0
b 0
f 0
dl 0
loc 43
ccs 14
cts 24
cp 0.5833
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getParent() 0 10 1
A getConfigPath() 0 15 1
1
<?php
2
3
namespace Stu\Module\Config;
4
5
use Stu\Module\Config\Model\AdminSettingsInterface;
6
use Stu\Module\Config\Model\CacheSettingsInterface;
7
use Stu\Module\Config\Model\ColonySettingsInterface;
8
use Stu\Module\Config\Model\DbSettingsInterface;
9
use Stu\Module\Config\Model\DebugSettingsInterface;
10
use Stu\Module\Config\Model\EmailSettingsInterface;
11
use Stu\Module\Config\Model\GameSettingsInterface;
12
use Stu\Module\Config\Model\MapSettingsInterface;
13
use Stu\Module\Config\Model\PirateSettingsInterface;
14
use Stu\Module\Config\Model\ResetSettingsInterface;
15
use Stu\Module\Config\Model\SecuritySettingsInterface;
16
use Stu\Module\Config\Model\SqlLoggingSettingsInterface;
17
18
enum StuConfigSettingEnum: string
19
{
20
    case ADMIN = AdminSettingsInterface::class;
21
    case CACHE = CacheSettingsInterface::class;
22
    case COLONY = ColonySettingsInterface::class;
23
    case DB = DbSettingsInterface::class;
24
    case DEBUG = DebugSettingsInterface::class;
25
    case GAME = GameSettingsInterface::class;
26
    case MAP = MapSettingsInterface::class;
27
    case RESET = ResetSettingsInterface::class;
28
    case SQL_LOGGING = SqlLoggingSettingsInterface::class;
29
    case EMAIL = EmailSettingsInterface::class;
30
    case PIRATES = PirateSettingsInterface::class;
31
    case SECURITY = SecuritySettingsInterface::class;
32
33
    public function getParent(): ?StuConfigSettingEnum
34
    {
35
        return match ($this) {
36
            self::ADMIN,
37
            self::COLONY,
38
            self::MAP,
39
            self::EMAIL,
40
            self::PIRATES,
41
            self::SQL_LOGGING => self::DEBUG,
42
            default => null
43
        };
44
    }
45
46 4
    public function getConfigPath(): string
47
    {
48 4
        return match ($this) {
49 4
            self::ADMIN => 'admin',
50 4
            self::CACHE => 'cache',
51 4
            self::COLONY => 'colony',
52 3
            self::DB => 'db',
53 3
            self::DEBUG => 'debug',
54 3
            self::GAME => 'game',
55 3
            self::MAP => 'map',
56 2
            self::RESET => 'reset',
57 2
            self::SQL_LOGGING => 'sqlLogging',
58 2
            self::EMAIL => 'email',
59 1
            self::PIRATES => 'pirates',
60 4
            self::SECURITY => 'security'
61 4
        };
62
    }
63
}
64