Passed
Push — refactor-01-decoupling ( 479d2f...390a2f )
by John
02:09
created

FieldRendererFactory   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Test Coverage

Coverage 85.71%

Importance

Changes 0
Metric Value
eloc 18
dl 0
loc 48
ccs 18
cts 21
cp 0.8571
rs 10
c 0
b 0
f 0
wmc 6

3 Methods

Rating   Name   Duplication   Size   Complexity  
A factory() 0 4 1
A __construct() 0 3 1
A getFieldRenderer() 0 20 4
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
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 4
    public function getFieldRenderer(FieldParserInterface $parser)
34
    {
35 4
        switch (get_class($parser)) {
36 4
            case FieldParserBarcode::class:
37 1
                $renderer = FieldRendererBarcode::class;
38 1
                break;
39
40 3
            case FieldParserStaticGraphic::class:
41 1
                $renderer = FieldRendererStaticGraphic::class;
42 1
                break;
43
44 2
            case FieldParserGraphicPrimitive::class:
45 1
                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