Collection::add()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 5
ccs 4
cts 4
cp 1
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
crap 1
1
<?php
2
3
namespace Minerva\Collections;
4
5
use Minerva\Collections\Basis\Abstractions\AbstractStorage;
6
use Minerva\Collections\Basis\Exceptions\InvalidOffsetTypeException;
7
use Minerva\Collections\Basis\Interfaces\CollectionInterface;
8
9
/**
10
 * Coleção de dados
11
 *
12
 * @author  Lucas A. de Araújo <[email protected]>
13
 * @package Minerva\Collections
14
 */
15
class Collection extends AbstractStorage implements CollectionInterface
16
{
17
    /**
18
     * Adiciona um item na coleção
19
     *
20
     * @param $item
21
     */
22 9
    public function add($item)
23
    {
24 9
        $position = $this->count();
25 9
        $this->offsetSet($position, $item);
26 9
    }
27
28
    /**
29
     * Especialização do offset
30
     *
31
     * Pela regra da coleção os seus elementos só podem
32
     * ter chaves de contagem inteira progressiva. Por exemplo
33
     * 0, 1, 2, 3, 4, 5. Não pode fugir ao padrão progressivo.
34
     *
35
     * @param mixed $offset
36
     * @param mixed $value
37
     * @throws Basis\Exceptions\InvalidOffsetTypeException
38
     * @throws Basis\Exceptions\MaxCapacityReachedException
39
     * @throws Basis\Exceptions\ReadOnlyStorageException
40
     */
41 9
    public function offsetSet($offset, $value)
42
    {
43 9
        if(!is_int($offset))
44 9
            throw new InvalidOffsetTypeException("Apenas inteiros são permitidos");
45
46 9
        parent::offsetSet($offset, $value);
47
    }
48
}