Completed
Push — refactor-04-parser-tests ( bce951...3ac566 )
by John
02:51
created

FieldRendererFactory::getFieldRenderer()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 21
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 15
CRAP Score 4

Importance

Changes 0
Metric Value
cc 4
eloc 14
nc 4
nop 1
dl 0
loc 21
rs 9.7998
c 0
b 0
f 0
ccs 15
cts 15
cp 1
crap 4
1
<?php
2
3
namespace Graze\CiffRenderer\Renderer\FieldRenderer;
4
5
use Graze\CiffRenderer\Renderer\FieldRenderer\GraphicPrimitive\GraphicPrimitiveFactory;
6
use Graze\CiffRenderer\Parser\FieldType;
7
use Graze\CiffRenderer\Parser\FieldParser\FieldParserInterface;
8
use Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererBarcode;
9
use Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererFixedText;
10
use Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererStaticGraphic;
11
12
class FieldRendererFactory
13
{
14
    /**
15
     * @var GraphicPrimitiveFactory
16
     */
17
    private $graphicPrimitiveFactory;
18
19
    /**
20
     * @param GraphicPrimitiveFactory $graphicPrimitiveFactory
21
     */
22 8
    public function __construct(GraphicPrimitiveFactory $graphicPrimitiveFactory)
23
    {
24 8
        $this->graphicPrimitiveFactory = $graphicPrimitiveFactory;
25 8
    }
26
27
    /**
28
     * @param FieldParserInterface $parser
29
     * @return Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererInterface
0 ignored issues
show
Bug introduced by
The type Graze\CiffRenderer\Rende...\FieldRendererInterface was not found. Did you mean Graze\CiffRenderer\Rende...\FieldRendererInterface? If so, make sure to prefix the type with \.
Loading history...
30
     */
31 8
    public function getFieldRenderer(FieldParserInterface $parser)
32
    {
33 8
        $fieldType = $parser->getFieldType();
34
        switch ($fieldType) {
35 8
            case FieldType::FIELD_BARCODE:
36 1
                $renderer = FieldRendererBarcode::class;
37 1
                break;
38
39 7
            case FieldType::FIELD_STATIC_GRAPHIC:
40 1
                $renderer = FieldRendererStaticGraphic::class;
41 1
                break;
42
43 6
            case FieldType::FIELD_GRAPHIC_PRIMITIVE:
44 1
                return $this->graphicPrimitiveFactory->getFieldRenderer($parser->getShape());
45
46 5
            default:
47 5
                $renderer = FieldRendererFixedText::class;
48 5
                break;
49 5
        }
50
51 7
        return $renderer::factory();
52
    }
53
54
    /**
55
     * @return FieldRendererFactory
56
     */
57
    public static function factory()
58
    {
59
        return new static(
60
            new GraphicPrimitiveFactory()
61
        );
62
    }
63
}
64