ArrayMessage::getId()   A
last analyzed

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 1
Metric Value
cc 1
eloc 1
c 1
b 0
f 1
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
1
<?php
2
/**
3
 * Copyright Aleksandar Panic
4
 *
5
 * Licensed under the Apache License, Version 2.0 (the "License");
6
 * you may not use this file except in compliance with the License.
7
 * You may obtain a copy of the License at
8
 *
9
 * http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 **/
17
18
namespace ArekX\DataStreamer\Data;
19
20
21
use ArekX\DataStreamer\Contracts\Message;
22
23
/**
24
 * Class ArrayMessage
25
 * @package ArekX\DataStreamer\Data
26
 *
27
 * Represents a generic array message
28
 * for handling any type of the payload.
29
 */
30
class ArrayMessage implements Message
31
{
32
    /**
33
     * ID of the message.
34
     * @var string|null
35
     */
36
    public ?string $id = null;
37
38
    /**
39
     * Type of th message.
40
     * @var string
41
     */
42
    public string $type = '';
43
44
    /**
45
     * Payload of the message.
46
     * @var array
47
     */
48
    public array $payload = [];
49
50
    /**
51
     * @inheritDoc
52
     */
53 11
    public function getType(): string
54
    {
55 11
        return $this->type;
56
    }
57
58
    /**
59
     * @inheritDoc
60
     */
61 8
    public function getPayload(): array
62
    {
63 8
        return $this->payload;
64
    }
65
66
    /**
67
     * @inheritDoc
68
     */
69 5
    public function getId(): ?string
70
    {
71 5
        return $this->id;
72
    }
73
74
    /**
75
     * @inheritDoc
76
     */
77 12
    public static function create(string $type, array $payload, ?string $id = null): ArrayMessage
78
    {
79 12
        $message = new ArrayMessage();
80 12
        $message->payload = $payload;
81 12
        $message->id = $id;
82 12
        $message->type = $type;
83
84 12
        return $message;
85
    }
86
}