Column   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 35
Duplicated Lines 100 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 6
lcom 0
cbo 2
dl 35
loc 35
ccs 12
cts 12
cp 1
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 13 13 4
A identifier() 4 4 1
A cells() 4 4 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
declare(strict_types = 1);
3
4
namespace Spreadsheet;
5
6
use Spreadsheet\Exception\InvalidArgumentException;
7
use Innmind\Immutable\MapInterface;
8
9 View Code Duplication
final class Column implements ColumnInterface
10
{
11
    private $identifier;
12
    private $cells;
13
14 14
    public function __construct($identifier, MapInterface $cells)
15
    {
16
        if (
17 14
            !is_scalar($identifier) ||
18 13
            (string) $cells->keyType() !== 'scalar' ||
19 14
            (string) $cells->valueType() !== CellInterface::class
20
        ) {
21 2
            throw new InvalidArgumentException;
22
        }
23
24 12
        $this->identifier = $identifier;
25 12
        $this->cells = $cells;
26 12
    }
27
28
    /**
29
     * {@inheritdoc}
30
     */
31 1
    public function identifier()
32
    {
33 1
        return $this->identifier;
34
    }
35
36
    /**
37
     * {@inheritdoc}
38
     */
39 12
    public function cells(): MapInterface
40
    {
41 12
        return $this->cells;
42
    }
43
}
44