Passed
Push — master ( 9e5d31...8806f0 )
by Igor
01:12 queued 12s
created

MapFactory   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 8
c 1
b 0
f 0
dl 0
loc 38
ccs 11
cts 11
cp 1
rs 10
wmc 5

4 Methods

Rating   Name   Duplication   Size   Complexity  
A emptyObject() 0 3 1
A newObject() 0 3 1
A fromIterable() 0 8 2
A assoc() 0 3 1
1
<?php
2
/**
3
 * @author Maxim Sokolovsky
4
 */
5
6
namespace WS\Utils\Collections;
7
8
/**
9
 * Class MapFactory
10
 * @package WS\Utils\Collections
11
 */
12
class MapFactory
13
{
14
    /**
15
     * Creates Map from assoc array
16
     * @param array $assocArray
17
     * @return Map
18
     */
19 1
    public static function assoc(array $assocArray): Map
20
    {
21 1
        return self::fromIterable($assocArray);
22
    }
23
24 2
    public static function fromIterable(iterable $iterable): Map
25
    {
26 2
        $map = self::newObject();
27 2
        foreach ($iterable as $key => $value) {
28 2
            $map->put($key, $value);
29
        }
30
31 2
        return $map;
32
    }
33
34
    /**
35
     * Creates empty map object
36
     * @return Map
37
     */
38 1
    public static function emptyObject(): Map
39
    {
40 1
        return self::newObject();
41
    }
42
43
    /**
44
     * Creates empty Map object
45
     * @return Map
46
     */
47 3
    private static function newObject(): Map
48
    {
49 3
        return new HashMap();
50
    }
51
}
52