InflectorFactory   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 8
eloc 18
c 2
b 0
f 0
dl 0
loc 26
ccs 13
cts 13
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A create() 0 3 1
B createForLanguage() 0 19 7
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Doctrine\Inflector;
6
7
use Doctrine\Inflector\Rules\English;
8
use Doctrine\Inflector\Rules\French;
9
use Doctrine\Inflector\Rules\NorwegianBokmal;
10
use Doctrine\Inflector\Rules\Portuguese;
11
use Doctrine\Inflector\Rules\Spanish;
12
use Doctrine\Inflector\Rules\Turkish;
13
use InvalidArgumentException;
14
use function sprintf;
15
16
final class InflectorFactory
17
{
18 17
    public static function create() : LanguageInflectorFactory
19
    {
20 17
        return self::createForLanguage(Language::ENGLISH);
21
    }
22
23 1106
    public static function createForLanguage(string $language) : LanguageInflectorFactory
24
    {
25 1106
        switch ($language) {
26
            case Language::ENGLISH:
27 862
                return new English\InflectorFactory();
28
            case Language::FRENCH:
29 73
                return new French\InflectorFactory();
30
            case Language::NORWEGIAN_BOKMAL:
31 23
                return new NorwegianBokmal\InflectorFactory();
32
            case Language::PORTUGUESE:
33 55
                return new Portuguese\InflectorFactory();
34
            case Language::SPANISH:
35 73
                return new Spanish\InflectorFactory();
36
            case Language::TURKISH:
37 19
                return new Turkish\InflectorFactory();
38
            default:
39 1
                throw new InvalidArgumentException(sprintf(
40 1
                    'Language "%s" is not supported.',
41 1
                    $language
42
                ));
43
        }
44
    }
45
}
46