Completed
Pull Request — master (#19)
by John
09:10 queued 04:43
created

FieldRendererFactory::getFieldRenderer()   A

Complexity

Conditions 4
Paths 4

Size

Total Lines 20
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 4
eloc 13
nc 4
nop 1
dl 0
loc 20
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
    public function __construct(GraphicPrimitiveFactory $graphicPrimitiveFactory)
25
    {
26
        $this->graphicPrimitiveFactory = $graphicPrimitiveFactory;
27
    }
28
29
    /**
30
     * @param FieldParserInterface $parser
31
     * @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...
32
     */
33
    public function getFieldRenderer(FieldParserInterface $parser)
34
    {
35
        switch (get_class($parser)) {
36
            case FieldParserBarcode::class:
37
                $renderer = FieldRendererBarcode::class;
38
                break;
39
40
            case FieldParserStaticGraphic::class:
41
                $renderer = FieldRendererStaticGraphic::class;
42
                break;
43
44
            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
            default:
48
                $renderer = FieldRendererFixedText::class;
49
                break;
50
        }
51
52
        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