Passed
Push — master ( 8cd431...bc71f5 )
by Janko
09:12
created

StuConfigSettingEnum::getConfigPath()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 16
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 14
CRAP Score 1.0002

Importance

Changes 0
Metric Value
eloc 14
nc 1
nop 0
dl 0
loc 16
c 0
b 0
f 0
cc 1
ccs 14
cts 15
cp 0.9333
crap 1.0002
rs 9.7998
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\LoggingSettingsInterface;
13
use Stu\Module\Config\Model\MapSettingsInterface;
14
use Stu\Module\Config\Model\PirateSettingsInterface;
15
use Stu\Module\Config\Model\ResetSettingsInterface;
16
use Stu\Module\Config\Model\SecuritySettingsInterface;
17
use Stu\Module\Config\Model\SqlLoggingSettingsInterface;
18
19
enum StuConfigSettingEnum: string
20
{
21
    case ADMIN = AdminSettingsInterface::class;
22
    case CACHE = CacheSettingsInterface::class;
23
    case COLONY = ColonySettingsInterface::class;
24
    case DB = DbSettingsInterface::class;
25
    case DEBUG = DebugSettingsInterface::class;
26
    case LOGGING = LoggingSettingsInterface::class;
27
    case GAME = GameSettingsInterface::class;
28
    case MAP = MapSettingsInterface::class;
29
    case RESET = ResetSettingsInterface::class;
30
    case SQL_LOGGING = SqlLoggingSettingsInterface::class;
31
    case EMAIL = EmailSettingsInterface::class;
32
    case PIRATES = PirateSettingsInterface::class;
33
    case SECURITY = SecuritySettingsInterface::class;
34
35
    public function getParent(): ?StuConfigSettingEnum
36
    {
37
        return match ($this) {
38
            self::ADMIN,
39
            self::COLONY,
40
            self::MAP,
41
            self::EMAIL,
42
            self::PIRATES,
43
            self::LOGGING,
44
            self::SQL_LOGGING => self::DEBUG,
45
            default => null
46
        };
47
    }
48
49 4
    public function getConfigPath(): string
50
    {
51 4
        return match ($this) {
52 4
            self::ADMIN => 'admin',
53 4
            self::CACHE => 'cache',
54 4
            self::COLONY => 'colony',
55 3
            self::DB => 'db',
56 3
            self::DEBUG => 'debug',
57 3
            self::LOGGING => 'logging',
58 3
            self::GAME => 'game',
59 3
            self::MAP => 'map',
60 2
            self::RESET => 'reset',
61 2
            self::SQL_LOGGING => 'sqlLogging',
62 2
            self::EMAIL => 'email',
63
            self::PIRATES => 'pirates',
64 4
            self::SECURITY => 'security'
65 4
        };
66
    }
67
}
68