Factory   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
B getLibrary() 0 20 7
1
<?php
2
3
namespace kalanis\kw_mime\Check;
4
5
6
use kalanis\kw_files\Interfaces\IProcessFiles;
7
use kalanis\kw_mime\Interfaces\IMime;
8
use kalanis\kw_mime\Interfaces\IMiTranslations;
9
use kalanis\kw_storage\Storage;
10
11
12
/**
13
 * Class Factory
14
 * @package kalanis\kw_mime\Check
15
 * Which library will run?
16
 */
17
class Factory
18
{
19
    use Traits\TLang;
20
    use Traits\TCheckCalls;
21
22 7
    public function __construct(?IMiTranslations $lang = null)
23
    {
24 7
        $this->setMiLang($lang);
25
    }
26
27
    /**
28
     * @param IProcessFiles|Storage|string $source
29
     * @return IMime
30
     */
31 7
    public function getLibrary($source): IMime
32
    {
33 7
        if ($this->isMimeFunction()) {
34 6
            if (is_object($source) && ($source instanceof IProcessFiles)) {
35 1
                $lib = new DataFiles(null, $this->getMiLang());
36 1
                $lib->canUse($source);
37 1
                return $lib;
38 5
            } elseif (is_object($source) && ($source instanceof Storage)) {
39 1
                $lib = new DataStorage($this->getMiLang());
40 1
                $lib->canUse($source);
41 1
                return $lib;
42 4
            } elseif (is_string($source)) {
43 1
                $lib = new LocalVolume1($this->getMiLang());
44 1
                $lib->canUse($source);
45 1
                return $lib;
46
            } else {
47 3
                return new CustomList();
48
            }
49
        } else {
50 1
            return new CustomList();
51
        }
52
    }
53
}
54