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

BorderHelper::serializeBorderPart()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 11
rs 9.4285
c 1
b 0
f 0
cc 2
eloc 7
nc 2
nop 1
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
}