FailedMessageCollection::rewind()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 3
ccs 0
cts 3
cp 0
rs 10
c 0
b 0
f 0
cc 1
eloc 1
nc 1
nop 0
crap 2
1
<?php
2
3
namespace Werkspot\MessageQueue\ScheduledQueue\Repository;
4
5
use Countable;
6
use Iterator;
7
use Werkspot\MessageQueue\Message\MessageInterface;
8
9
final class FailedMessageCollection implements Countable, Iterator
10
{
11
    /**
12
     * @var array
13
     */
14
    private $failedMessages = [];
15
16
    /**
17
     * @var int
18
     */
19
    private $pointer = 0;
20
21
    public function __construct(array $failedMessagesArray)
22
    {
23
        /**
24
         * @var MessageInterface $message
25
         * @var int $count
26
         */
27
        foreach ($failedMessagesArray as [$message, $count]) {
28
            $this->failedMessages[] = new FailedMessage($message, $count);
29
        }
30
    }
31
32
    public function current(): FailedMessage
33
    {
34
        return $this->failedMessages[$this->pointer];
35
    }
36
37
    public function next(): void
38
    {
39
        $this->pointer++;
40
    }
41
42
    public function key(): int
43
    {
44
        return $this->pointer;
45
    }
46
47
    public function valid(): bool
48
    {
49
        return isset($this->failedMessages[$this->pointer]);
50
    }
51
52
    public function rewind(): void
53
    {
54
        $this->pointer = 0;
55
    }
56
57
    public function count(): int
58
    {
59
        return count($this->failedMessages);
60
    }
61
}
62