AMQPTable::getType()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 1 Features 0
Metric Value
c 1
b 1
f 0
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
namespace PhpAmqpLib\Wire;
3
4
use PhpAmqpLib\Exception;
5
6
7
class AMQPTable extends AMQPAbstractCollection
8
{
9
10
    /**
11
     * @return int
12
     */
13 15
    final public function getType()
14
    {
15 15
        return self::T_TABLE;
16
    }
17
18
    /**
19
     * @param string $key
20
     * @param mixed $val
21
     * @param integer $type
22
     */
23 65
    public function set($key, $val, $type = null)
24
    {
25
        //https://www.rabbitmq.com/resources/specs/amqp0-9-1.pdf, https://www.rabbitmq.com/resources/specs/amqp0-8.pdf
26
        //Field names MUST start with a letter, '$' or '#' and may continue with letters, '$' or '#', digits, or underlines, to a maximum length of 128 characters
27
        //The server SHOULD validate field names and upon receiving an invalid field name, it SHOULD signal a connection exception with reply code 503 (syntax error)
28
29
        //validating length only and delegating other stuff to server, as rabbit seems to currently support numeric keys
30 65
        if (!($len = strlen($key)) || ($len > 128)) {
31 10
            throw new Exception\AMQPInvalidArgumentException('Table key must be non-empty string up to 128 chars in length');
32
        }
33 60
        $this->setValue($val, $type, $key);
34 60
    }
35
}
36