Failed Conditions
Push — perf-tests ( 50942d...2fc93e )
by Adrien
14:53
created

ReaderFactory   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 4
c 3
b 0
f 1
lcom 0
cbo 4
dl 0
loc 33
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B create() 0 22 4
1
<?php
2
3
namespace Box\Spout\Reader;
4
5
use Box\Spout\Common\Exception\UnsupportedTypeException;
6
use Box\Spout\Common\Helper\GlobalFunctionsHelper;
7
use Box\Spout\Common\Type;
8
9
/**
10
 * Class ReaderFactory
11
 * This factory is used to create readers, based on the type of the file to be read.
12
 * It supports CSV and XLSX formats.
13
 *
14
 * @package Box\Spout\Reader
15
 */
16
class ReaderFactory
17
{
18
    /**
19
     * This creates an instance of the appropriate reader, given the type of the file to be read
20
     *
21
     * @api
22
     * @param  string $readerType Type of the reader to instantiate
23
     * @return ReaderInterface
24
     * @throws \Box\Spout\Common\Exception\UnsupportedTypeException
25
     */
26
    public static function create($readerType)
27
    {
28
        $reader = null;
29
30
        switch ($readerType) {
31
            case Type::CSV:
32
                $reader = new CSV\Reader();
33
                break;
34
            case Type::XLSX:
35
                $reader = new XLSX\Reader();
36
                break;
37
            case Type::ODS:
38
                $reader = new ODS\Reader();
39
                break;
40
            default:
41
                throw new UnsupportedTypeException('No readers supporting the given type: ' . $readerType);
42
        }
43
44
        $reader->setGlobalFunctionsHelper(new GlobalFunctionsHelper());
45
46
        return $reader;
47
    }
48
}
49