Passed
Push — master ( ecdac6...f36ca7 )
by Janko
09:21
created

StuConfigSettingEnum   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Test Coverage

Coverage 48.15%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 36
c 1
b 0
f 0
dl 0
loc 45
ccs 13
cts 27
cp 0.4815
rs 10
wmc 2

2 Methods

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