Passed
Branch master (b4f9b9)
by Maxime
03:00
created

AttributeFactory::create()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 3

Importance

Changes 5
Bugs 0 Features 0
Metric Value
c 5
b 0
f 0
dl 0
loc 11
ccs 7
cts 7
cp 1
rs 9.4285
cc 3
eloc 6
nc 3
nop 2
crap 3
1
<?php
2
3
namespace Mhor\MediaInfo\Factory;
4
5
use Mhor\MediaInfo\Checker\AbstractAttributeChecker;
6
use Mhor\MediaInfo\Checker\CoverChecker;
7
use Mhor\MediaInfo\Checker\DateTimeChecker;
8
use Mhor\MediaInfo\Checker\DurationChecker;
9
use Mhor\MediaInfo\Checker\ModeChecker;
10
use Mhor\MediaInfo\Checker\RateChecker;
11
use Mhor\MediaInfo\Checker\SizeChecker;
12
13
class AttributeFactory
14
{
15
    /**
16
     * @param $attribute
17
     * @param $value
18
     *
19
     * @return mixed
20
     */
21 6
    public static function create($attribute, $value)
22
    {
23 6
        $attributesType = self::getAllAttributeType();
24 6
        foreach ($attributesType as $attributeType) {
25 6
            if ($attributeType->isMember($attribute)) {
26 6
                return $attributeType->create($value);
27
            }
28 6
        }
29
30 3
        return $value;
31
    }
32
33
    /**
34
     * @return AbstractAttributeChecker[]
35
     */
36 6
    private static function getAllAttributeType()
37
    {
38
        return array(
39 6
            new CoverChecker(),
40 6
            new DurationChecker(),
41 6
            new ModeChecker(),
42 6
            new RateChecker(),
43 6
            new SizeChecker(),
44 6
            new DateTimeChecker(),
45 6
        );
46
    }
47
}
48