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

WriterFactory   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\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