Passed
Push — master ( 309dcb...6acad1 )
by Petr
02:25
created

Storage::removeMulti()   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 1
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
3
namespace kalanis\kw_storage\Storage;
4
5
6
use kalanis\kw_storage\Interfaces;
7
use Traversable;
8
9
10
/**
11
 * Class Storage
12
 * @package kalanis\kw_storage\Storage
13
 * Main connection through storage structure
14
 */
15
class Storage implements Interfaces\IStorage
16
{
17
    /** @var Interfaces\ITarget */
18
    protected $target = null;
19
    /** @var Interfaces\IKey */
20
    protected $key = null;
21
22 18
    public function __construct(Interfaces\IKey $key, Interfaces\ITarget $target)
23
    {
24 18
        $this->target = $target;
25 18
        $this->key = $key;
26 18
    }
27
28 11
    public function canUse(): bool
29
    {
30 11
        return $this->target->check($this->key->fromSharedKey(''));
31
    }
32
33 5
    public function write(string $sharedKey, $data, ?int $timeout = null): bool
34
    {
35 5
        return $this->target->save($this->key->fromSharedKey($sharedKey), $data, $timeout);
36
    }
37
38 6
    public function read(string $sharedKey)
39
    {
40 6
        return $this->target->load($this->key->fromSharedKey($sharedKey));
41
    }
42
43 5
    public function remove(string $sharedKey): bool
44
    {
45 5
        return $this->target->remove($this->key->fromSharedKey($sharedKey));
46
    }
47
48 8
    public function exists(string $sharedKey): bool
49
    {
50 8
        return $this->target->exists($this->key->fromSharedKey($sharedKey));
51
    }
52
53 3
    public function lookup(string $mask): Traversable
54
    {
55 3
        return $this->target->lookup($this->key->fromSharedKey($mask));
56
    }
57
58 4
    public function increment(string $key): bool
59
    {
60 4
        return $this->target->increment($this->key->fromSharedKey($key));
61
    }
62
63 4
    public function decrement(string $key): bool
64
    {
65 4
        return $this->target->decrement($this->key->fromSharedKey($key));
66
    }
67
68 3
    public function removeMulti(array $keys): array
69
    {
70 3
        return $this->target->removeMulti(array_map([$this, 'multiKey'], $keys));
71
    }
72
73 1
    public function isFlat(): bool
74
    {
75 1
        return $this->target instanceof Interfaces\ITargetFlat;
76
    }
77
78 3
    public function multiKey(string $key): string
79
    {
80 3
        return $this->key->fromSharedKey($key);
81
    }
82
}
83