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

MapFactory::newObject()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
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