/
SegmentFactory.php
32 lines (28 loc) · 938 Bytes
/
SegmentFactory.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
declare(strict_types=1);
namespace EdifactParser\Segments;
final class SegmentFactory implements SegmentFactoryInterface
{
public function segmentFromArray(array $rawArray): SegmentInterface
{
switch ($rawArray[0]) {
case 'UNH':
return new UNHMessageHeader($rawArray);
case 'DTM':
return new DTMDateTimePeriod($rawArray);
case 'NAD':
return new NADNameAddress($rawArray);
case 'MEA':
return new MEADimensions($rawArray);
case 'CNT':
return new CNTControl($rawArray);
case 'PCI':
return new PCIPackageId($rawArray);
case 'BGM':
return new BGMBeginningOfMessage($rawArray);
case 'UNT':
return new UNTMessageFooter($rawArray);
}
return new UnknownSegment($rawArray);
}
}