Completed
Pull Request — develop_3.0 (#423)
by Adrien
02:30
created

OptionsManager::getSupportedOptions()

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
ccs 0
cts 0
cp 0
c 0
b 0
f 0
nc 1
1
<?php
2
3
namespace Box\Spout\Writer\Common\Manager;
4
5
/**
6
 * Class OptionsManager
7
 * Writer' options manager
8
 *
9
 * @package Box\Spout\Writer\Common\Manager
10
 */
11
abstract class OptionsManager implements OptionsManagerInterface
12
{
13
    const PREFIX_OPTION = 'OPTION_';
14
15
    /** @var string[] List of all supported option names */
16
    private $supportedOptions = [];
17
18
    /** @var array Associative array [OPTION_NAME => OPTION_VALUE] */
19
    private $options = [];
20
21
    /**
22
     * WriterOptions constructor.
23
     */
24 116
    public function __construct()
25
    {
26 116
        $this->supportedOptions = $this->getSupportedOptions();
27 116
        $this->setDefaultOptions();
28 116
    }
29
30
    /**
31
     * @return array List of supported options
32
     */
33
    abstract protected function getSupportedOptions();
34
35
    /**
36
     * Sets the default options.
37
     * To be overriden by child classes
38
     *
39
     * @return void
40
     */
41
    abstract protected function setDefaultOptions();
42
43
    /**
44
     * Sets the given option, if this option is supported.
45
     *
46
     * @param string $optionName
47
     * @param mixed $optionValue
48
     * @return void
49
     */
50 116
    public function setOption($optionName, $optionValue)
51
    {
52 116
        if (in_array($optionName, $this->supportedOptions)) {
53 116
            $this->options[$optionName] = $optionValue;
54
        }
55 116
    }
56
57
    /**
58
     * @param string $optionName
59
     * @return mixed|null The set option or NULL if no option with given name found
60
     */
61 116
    public function getOption($optionName)
62
    {
63 116
        $optionValue = null;
64
65 116
        if (isset($this->options[$optionName])) {
66 110
            $optionValue = $this->options[$optionName];
67
        }
68
69 116
        return $optionValue;
70
    }
71
}
72