Completed
Push — refactor-04-parser-tests ( 553ee6...bce951 )
by John
03:05 queued 47s
created

FieldRendererFactory::getFieldRenderer()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 20
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 14
CRAP Score 4.0047

Importance

Changes 0
Metric Value
cc 4
eloc 13
nc 4
nop 1
dl 0
loc 20
ccs 14
cts 15
cp 0.9333
crap 4.0047
rs 9.8333
c 0
b 0
f 0
1
<?php
2
3
namespace Graze\CiffRenderer\Renderer\FieldRenderer;
4
5
use Graze\CiffRenderer\Renderer\FieldRenderer\GraphicPrimitive\GraphicPrimitiveFactory;
6
use Graze\CiffRenderer\Parser\FieldParser\FieldParserInterface;
7
use Graze\CiffRenderer\Parser\FieldParser\FieldParserBarcode;
8
use Graze\CiffRenderer\Parser\FieldParser\FieldParserStaticGraphic;
9
use Graze\CiffRenderer\Parser\FieldParser\FieldParserGraphicPrimitive;
10
use Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererBarcode;
11
use Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererFixedText;
12
use Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererStaticGraphic;
13
14
class FieldRendererFactory
15
{
16
    /**
17
     * @var GraphicPrimitiveFactory
18
     */
19
    private $graphicPrimitiveFactory;
20
21
    /**
22
     * @param GraphicPrimitiveFactory $graphicPrimitiveFactory
23
     */
24 4
    public function __construct(GraphicPrimitiveFactory $graphicPrimitiveFactory)
25
    {
26 4
        $this->graphicPrimitiveFactory = $graphicPrimitiveFactory;
27 4
    }
28
29
    /**
30
     * @param FieldParserInterface $parser
31
     * @return \Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererInterface
32
     */
33 3
    public function getFieldRenderer(FieldParserInterface $parser)
34
    {
35 3
        switch (get_class($parser)) {
36 3
            case FieldParserBarcode::class:
37 1
                $renderer = FieldRendererBarcode::class;
38 1
                break;
39
40 2
            case FieldParserStaticGraphic::class:
41 1
                $renderer = FieldRendererStaticGraphic::class;
42 1
                break;
43
44 1
            case FieldParserGraphicPrimitive::class:
45
                return $this->graphicPrimitiveFactory->getFieldRenderer($parser->getShape());
0 ignored issues
show
Bug introduced by
The method getShape() does not exist on Graze\CiffRenderer\Parse...er\FieldParserInterface. It seems like you code against a sub-type of Graze\CiffRenderer\Parse...er\FieldParserInterface such as Graze\CiffRenderer\Parse...dParserGraphicPrimitive or Graze\CiffRenderer\Parse...dParserGraphicPrimitive. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

45
                return $this->graphicPrimitiveFactory->getFieldRenderer($parser->/** @scrutinizer ignore-call */ getShape());
Loading history...
46
47 1
            default:
48 1
                $renderer = FieldRendererFixedText::class;
49 1
                break;
50 3
        }
51
52 3
        return $renderer::factory();
53
    }
54
55
    /**
56
     * @return FieldRendererFactory
57
     */
58
    public static function factory()
59
    {
60
        return new static(
61
            new GraphicPrimitiveFactory()
62
        );
63
    }
64
}
65