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

FieldParserFactory::getFieldParser()   B

Complexity

Conditions 9
Paths 9

Size

Total Lines 36
Code Lines 26

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 9
eloc 26
nc 9
nop 1
dl 0
loc 36
rs 8.0555
c 0
b 0
f 0
1
<?php
2
3
namespace Graze\CiffRenderer\Parser\FieldParser;
4
5
use Graze\CiffRenderer\Parser\FieldType;
6
use Graze\CiffRenderer\Parser\FieldParser\FieldParserFixedText;
7
use Graze\CiffRenderer\Parser\FieldParser\FieldParserBarcode;
8
use Graze\CiffRenderer\Parser\FieldParser\FieldParserDate\FieldParserDate;
9
use Graze\CiffRenderer\Parser\FieldParser\FieldParserDate\FieldParserDateOffset;
10
use Graze\CiffRenderer\Parser\FieldParser\FieldParserStaticGraphic;
11
use Graze\CiffRenderer\Parser\FieldParser\FieldParserGraphicPrimitive;
12
use Graze\CiffRenderer\Exception\UnsupportedFieldTypeException;
13
use \SimpleXMLElement;
14
15
class FieldParserFactory
16
{
17
    /**
18
     * @param SimpleXMLElement $xml
19
     * @return FieldParserInterface
20
     */
21
    public function getFieldParser(SimpleXMLElement $xml)
22
    {
23
        $fieldType = (string) $xml->FldType;
0 ignored issues
show
Coding Style introduced by
The variable $FldType should be in camel caps format.
Loading history...
24
        switch ($fieldType) { // @codingStandardsIgnoreLine
25
            case FieldType::FIELD_FIXED_TEXT:
26
            case FieldType::FIELD_COMPLEX_TEXT:
27
            case FieldType::FIELD_MERGE_FIELD:
28
                $className = FieldParserFixedText::class;
29
                break;
30
31
            case FieldType::FIELD_BARCODE:
32
                $className = FieldParserBarcode::class;
33
                break;
34
35
            case FieldType::FIELD_DATE:
36
                $className = FieldParserDate::class;
37
                break;
38
39
            case FieldType::FIELD_OFFSET_DATE:
40
                $className = FieldParserDateOffset::class;
41
                break;
42
43
            case FieldType::FIELD_STATIC_GRAPHIC:
44
                $className = FieldParserStaticGraphic::class;
45
                break;
46
47
            case FieldType::FIELD_GRAPHIC_PRIMITIVE:
48
                $className = FieldParserGraphicPrimitive::class;
49
                break;
50
51
            default:
52
                throw new UnsupportedFieldTypeException($fieldType);
53
                break;
54
        }
55
56
        return $className::factory();
57
    }
58
}
59