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

WriterFactory::create()   B

Complexity

Conditions 4
Paths 4

Size

Total Lines 22
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 22
rs 8.9197
cc 4
eloc 16
nc 4
nop 1
1
<?php
2
3
namespace Box\Spout\Writer;
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 WriterFactory
11
 * This factory is used to create writers, based on the type of the file to be read.
12
 * It supports CSV, XLSX and ODS formats.
13
 *
14
 * @package Box\Spout\Writer
15
 */
16
class WriterFactory
17
{
18
    /**
19
     * This creates an instance of the appropriate writer, given the type of the file to be read
20
     *
21
     * @api
22
     * @param  string $writerType Type of the writer to instantiate
23
     * @return WriterInterface
24
     * @throws \Box\Spout\Common\Exception\UnsupportedTypeException
25
     */
26
    public static function create($writerType)
27
    {
28
        $writer = null;
29
30
        switch ($writerType) {
31
            case Type::CSV:
32
                $writer = new CSV\Writer();
33
                break;
34
            case Type::XLSX:
35
                $writer = new XLSX\Writer();
36
                break;
37
            case Type::ODS:
38
                $writer = new ODS\Writer();
39
                break;
40
            default:
41
                throw new UnsupportedTypeException('No writers supporting the given type: ' . $writerType);
42
        }
43
44
        $writer->setGlobalFunctionsHelper(new GlobalFunctionsHelper());
45
46
        return $writer;
47
    }
48
}
49