Passed
Pull Request — master (#62)
by Sergei
13:01
created

ReplaceValue::toValue()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 3
c 1
b 0
f 0
dl 0
loc 5
rs 10
cc 1
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Arrays\Collection\Modifier;
6
7
final class ReplaceValue implements DataModifierInterface
8
{
9
    /**
10
     * @var int|string|null
11
     */
12
    private $key = null;
13
14
    /**
15
     * @var mixed
16
     */
17
    private $value = null;
18
19
    public function apply(array $data): array
20
    {
21
        if ($this->key !== null) {
22
            $data[$this->key] = $this->value;
23
        }
24
        return $data;
25
    }
26
27
    /**
28
     * @param int|string $key
29
     * @return self
30
     */
31
    public function forKey($key): self
32
    {
33
        $new = clone $this;
34
        $new->key = $key;
35
        return $new;
36
    }
37
38
    /**
39
     * @param mixed $value
40
     * @return self
41
     */
42
    public function toValue($value): self
43
    {
44
        $new = clone $this;
45
        $new->value = $value;
46
        return $new;
47
    }
48
}
49