DefaultConverterProvider   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 89.47%

Importance

Changes 0
Metric Value
wmc 8
lcom 1
cbo 1
dl 0
loc 44
ccs 17
cts 19
cp 0.8947
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 11 1
A add() 0 13 4
A has() 0 4 1
A get() 0 5 2
1
<?php
2
3
namespace Mathielen\ImportEngine\Mapping\Converter\Provider;
4
5
use Ddeboer\DataImport\ValueConverter\CallbackValueConverter;
6
use Ddeboer\DataImport\ItemConverter\ItemConverterInterface;
7
use Ddeboer\DataImport\ValueConverter\ValueConverterInterface;
8
9
class DefaultConverterProvider implements ConverterProviderInterface
10
{
11
    private $converters;
12
13 22
    public function __construct()
14
    {
15 22
        $this->converters = array();
16
17
        $this->add('upperCase', new CallbackValueConverter(function ($item) {
18 1
            return strtoupper($item);
19 22
        }));
20 22
        $this->add('lowerCase', new CallbackValueConverter(function ($item) {
21 1
            return strtolower($item);
22 22
        }));
23 22
    }
24
25
    /**
26
     * @return \Mathielen\ImportEngine\Mapping\Converter\Provider\DefaultConverterProvider
27
     */
28 22
    public function add($id, $converter)
29
    {
30 22
        if (!($converter instanceof ValueConverterInterface || $converter instanceof ItemConverterInterface)) {
31
            throw new \InvalidArgumentException('Converter must implement ValueConverterInterface or ItemConverterInterface');
32
        }
33 22
        if (empty($id)) {
34
            throw new \InvalidArgumentException('Id cannot be empty');
35
        }
36
37 22
        $this->converters[$id] = $converter;
38
39 22
        return $this;
40
    }
41
42 1
    public function has($id)
43
    {
44 1
        return isset($this->converters[$id]);
45
    }
46
47 1
    public function get($id)
48
    {
49
        //do not use $this->has() - it will be overwritten
50 1
        return isset($this->converters[$id]) ? $this->converters[$id] : null;
51
    }
52
}
53