Completed
Push — master ( fd3130...674c45 )
by John
03:39
created

FieldSorter   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 13
dl 0
loc 25
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A sort() 0 6 1
1
<?php
2
3
namespace Graze\CiffRenderer\Parser;
4
5
use Graze\CiffRenderer\Parser\FieldType;
6
use Graze\CiffRenderer\Exception\UnsupportedFieldTypeException;
7
use \SimpleXMLElement;
8
9
class FieldSorter
10
{
11
    /**
12
     * @var int
13
     */
14
    protected $fieldTypeToOrder = [
15
        FieldType::FIELD_STATIC_GRAPHIC    => 1,
16
        FieldType::FIELD_FIXED_TEXT        => 2,
17
        FieldType::FIELD_COMPLEX_TEXT      => 3,
18
        FieldType::FIELD_BARCODE           => 4,
19
        FieldType::FIELD_DATE              => 5,
20
        FieldType::FIELD_OFFSET_DATE       => 6,
21
        FieldType::FIELD_MERGE_FIELD       => 7,
22
        FieldType::FIELD_GRAPHIC_PRIMITIVE => 8,
23
    ];
24
25
    /**
26
     * @param SimpleXMLElement[] $fields
27
     */
28
    public function sort(array &$fields)
29
    {
30 1
        usort($fields, function ($field1, $field2) {
31
            return
32
                // @codingStandardsIgnoreLine
33 1
                $this->fieldTypeToOrder[(string) $field1->FldType] - $this->fieldTypeToOrder[(string) $field2->FldType];
34 1
        });
35 1
    }
36
}
37