Completed
Push — master ( cc51b8...3f6140 )
by Nate
02:16
created

AbstractMap::exists()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 11
ccs 5
cts 5
cp 1
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 5
nc 3
nop 1
crap 3
1
<?php
2
/*
3
 * Copyright (c) Nate Brunette.
4
 * Distributed under the MIT License (http://opensource.org/licenses/MIT)
5
 */
6
7
namespace Tebru\Collection;
8
9
/**
10
 * Class AbstractMap
11
 *
12
 * A skeletal implementation of [@see MapInterface]
13
 *
14
 * @author Nate Brunette <[email protected]>
15
 */
16
abstract class AbstractMap implements MapInterface
17
{
18
    /**
19
     * Adds all the mappings from specified map to this map
20
     *
21
     * @param MapInterface $map
22
     * @return void
23
     */
24 1
    public function putAll(MapInterface $map)
25
    {
26
        /** @var MapEntry $entrySet */
27 1
        foreach ($map->entrySet() as $entrySet) {
28 1
            $this->put($entrySet->key, $entrySet->value);
29
        }
30 1
    }
31
32
    /**
33
     * Use a closure to determine existence in the map
34
     *
35
     * The closure will get passed a [@see MapEntry].  Returning true from the
36
     * closure will return true from this method.
37
     *
38
     * @param callable $exists
39
     * @return bool
40
     */
41 1
    public function exists(callable $exists): bool
42
    {
43
        /** @var MapEntry $mapEntry */
44 1
        foreach ($this->entrySet() as $mapEntry) {
45 1
            if (true === $exists($mapEntry)) {
46 1
                return true;
47
            }
48
        }
49
50 1
        return false;
51
    }
52
}
53