Completed
Pull Request — master (#200)
by Hura
11:35
created

BorderHelper   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
lcom 1
cbo 1
dl 0
loc 36
rs 10
c 1
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A serializeBorderPart() 0 11 2
1
<?php
2
3
namespace Box\Spout\Writer\XLSX\Helper;
4
5
use Box\Spout\Writer\Style\BorderPart;
6
use Box\Spout\Writer\Style\Border;
7
8
class BorderHelper
9
{
10
    public static $xlsxStyleMap = [
11
        Border::STYLE_SOLID.'%'.Border::WIDTH_THIN => 'thin',
12
        Border::STYLE_SOLID.'%'.Border::WIDTH_MEDIUM => 'medium',
13
        Border::STYLE_SOLID.'%'.Border::WIDTH_THICK => 'thick',
14
        Border::STYLE_DOTTED.'%'.Border::WIDTH_THIN => 'dotted',
15
        Border::STYLE_DOTTED.'%'.Border::WIDTH_MEDIUM => 'dotted',
16
        Border::STYLE_DOTTED.'%'.Border::WIDTH_THICK => 'dotted',
17
        Border::STYLE_DASHED.'%'.Border::WIDTH_THIN => 'dashed',
18
        Border::STYLE_DASHED.'%'.Border::WIDTH_MEDIUM => 'mediumDashed',
19
        Border::STYLE_DASHED.'%'.Border::WIDTH_THICK => 'mediumDashed',
20
        Border::STYLE_DOUBLE.'%'.Border::WIDTH_THIN => 'double',
21
        Border::STYLE_DOUBLE.'%'.Border::WIDTH_MEDIUM => 'double',
22
        Border::STYLE_DOUBLE.'%'.Border::WIDTH_THICK => 'double',
23
        Border::STYLE_NONE.'%'.Border::WIDTH_THIN => 'none',
24
        Border::STYLE_NONE.'%'.Border::WIDTH_MEDIUM => 'none',
25
        Border::STYLE_NONE.'%'.Border::WIDTH_THICK => 'none',
26
    ];
27
28
    /**
29
     * @param BorderPart $borderPart
30
     * @return string
31
     */
32
    public static function serializeBorderPart(BorderPart $borderPart)
33
    {
34
        $styleDef = $borderPart->getStyle() .'%' . $borderPart->getWidth();
35
        $borderStyle = self::$xlsxStyleMap[$styleDef];
36
37
        $colorEl = $borderPart->getColor() ? sprintf('<color rgb="%s"/>', $borderPart->getColor()) : '';
38
        $partEl = sprintf(
39
            '<%s style="%s">%s</%s>', $borderPart->getName(), $borderStyle, $colorEl, $borderPart->getName()
40
        );
41
        return $partEl.PHP_EOL;
42
    }
43
}