Completed
Pull Request — develop_3.0 (#427)
by Adrien
04:16 queued 01:53
created

InternalFactory::createStringsEscaper()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Box\Spout\Writer\ODS\Factory;
4
5
use Box\Spout\Common\Helper\StringHelper;
6
use Box\Spout\Writer\Common\Manager\OptionsManagerInterface;
7
use Box\Spout\Writer\Common\Options;
8
use Box\Spout\Writer\Factory\EntityFactory;
9
use Box\Spout\Writer\Factory\InternalFactoryInterface;
10
use Box\Spout\Writer\ODS\Helper\FileSystemHelper;
11
use Box\Spout\Writer\ODS\Helper\StyleHelper;
12
use Box\Spout\Writer\ODS\Manager\WorkbookManager;
13
use Box\Spout\Writer\ODS\Manager\WorksheetManager;
14
use \Box\Spout\Common\Escaper;
15
16
/**
17
 * Class InternalFactory
18
 * Factory for all useful types of objects needed by the ODS Writer
19
 *
20
 * @package Box\Spout\Writer\ODS\Factory
21
 */
22
class InternalFactory implements InternalFactoryInterface
23
{
24
    /** @var EntityFactory */
25
    private $entityFactory;
26
27
    /**
28
     * InternalFactory constructor.
29
     *
30
     * @param EntityFactory $entityFactory
31
     */
32 48
    public function __construct(EntityFactory $entityFactory)
33
    {
34 48
        $this->entityFactory = $entityFactory;
35 48
    }
36
37
    /**
38
     * @param OptionsManagerInterface $optionsManager
39
     * @return WorkbookManager
40
     */
41 43
    public function createWorkbookManager(OptionsManagerInterface $optionsManager)
42
    {
43 43
        $workbook = $this->entityFactory->createWorkbook();
44
45 43
        $fileSystemHelper = $this->createFileSystemHelper($optionsManager);
46 43
        $fileSystemHelper->createBaseFilesAndFolders();
47
48 43
        $styleHelper = $this->createStyleHelper($optionsManager);
49 43
        $worksheetManager = $this->createWorksheetManager($styleHelper);
50
51 43
        return new WorkbookManager($workbook, $optionsManager, $worksheetManager, $styleHelper, $fileSystemHelper, $this->entityFactory);
52
    }
53
54
    /**
55
     * @param StyleHelper $styleHelper
56
     * @return WorksheetManager
57
     */
58 43
    private function createWorksheetManager(StyleHelper $styleHelper)
59
    {
60 43
        $stringsEscaper = $this->createStringsEscaper();
61 43
        $stringsHelper = $this->createStringHelper();
62
63 43
        return new WorksheetManager($styleHelper, $stringsEscaper, $stringsHelper);
64
    }
65
66
    /**
67
     * @param OptionsManagerInterface $optionsManager
68
     * @return FileSystemHelper
69
     */
70 43
    public function createFileSystemHelper(OptionsManagerInterface $optionsManager)
71
    {
72 43
        $tempFolder = $optionsManager->getOption(Options::TEMP_FOLDER);
73 43
        return new FileSystemHelper($tempFolder);
74
    }
75
76
    /**
77
     * @param OptionsManagerInterface $optionsManager
78
     * @return StyleHelper
79
     */
80 43
    private function createStyleHelper(OptionsManagerInterface $optionsManager)
81
    {
82 43
        $defaultRowStyle = $optionsManager->getOption(Options::DEFAULT_ROW_STYLE);
83 43
        return new StyleHelper($defaultRowStyle);
84
    }
85
86
    /**
87
     * @return Escaper\ODS
88
     */
89 43
    private function createStringsEscaper()
90
    {
91 43
        return Escaper\ODS::getInstance();
92
    }
93
94
    /**
95
     * @return StringHelper
96
     */
97 43
    private function createStringHelper()
98
    {
99 43
        return new StringHelper();
100
    }
101
}