BasicTypeResponse::setBody()   A
last analyzed

Complexity

Conditions 4
Paths 6

Size

Total Lines 16
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 20

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 16
ccs 0
cts 16
cp 0
rs 9.2
c 1
b 0
f 0
cc 4
eloc 12
nc 6
nop 1
crap 20
1
<?php
2
namespace Disque\Command\Response;
3
4
abstract class BasicTypeResponse extends BaseResponse implements ResponseInterface
5
{
6
    const TYPE_STRING = 0;
7
    const TYPE_INT = 1;
8
9
    /**
10
     * Basic data type for this response
11
     *
12
     * @var int
13
     */
14
    protected $type;
15
16
    /**
17
     * Set response body
18
     *
19
     * @param mixed $body Response body
20
     * @return void
21
     * @throws InvalidResponseException
22
     */
23
    public function setBody($body)
24
    {
25
        switch ($this->type) {
26
            case self::TYPE_INT:
27
                $error = !is_numeric($body);
28
                break;
29
            case self::TYPE_STRING:
30
            default:
31
                $error = !is_string($body);
32
                break;
33
        }
34
        if ($error) {
35
            throw new InvalidResponseException($this->command, $body);
36
        }
37
        parent::setBody($body);
38
    }
39
}