Failed Conditions
Pull Request — master (#92)
by
unknown
08:11
created

Message   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 24
dl 0
loc 49
ccs 0
cts 36
cp 0
rs 10
c 1
b 0
f 0
wmc 8

1 Method

Rating   Name   Duplication   Size   Complexity  
B addGroupHeader() 0 44 8
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Genkgo\Camt\Camt054\Decoder\V04;
6
7
use Genkgo\Camt\Camt054\Decoder\Message as BaseMessage;
8
use Genkgo\Camt\Camt054\DTO\V04 as Camt054V04DTO;
9
use Genkgo\Camt\Decoder\Factory\DTO as DTOFactory;
10
use Genkgo\Camt\DTO;
11
use SimpleXMLElement;
12
13
class Message extends BaseMessage
14
{
15
    /**
16
     * {@inheritdoc}
17
     */
18
    public function addGroupHeader(DTO\Message $message, SimpleXMLElement $document): void
19
    {
20
        $xmlGroupHeader = $this->getRootElement($document)->GrpHdr;
21
        $groupHeader = new Camt054V04DTO\GroupHeader(
22
            (string) $xmlGroupHeader->MsgId,
23
            $this->dateDecoder->decode((string) $xmlGroupHeader->CreDtTm)
24
        );
25
26
        if (isset($xmlGroupHeader->OrgnlBizQry)) {
27
            $originalBusinessQuery = new Camt054V04DTO\OriginalBusinessQuery(
28
                (string) $xmlGroupHeader->OrgnlBizQry->MsgId
29
            );
30
31
            if (isset($xmlGroupHeader->OrgnlBizQry->CreDtTm)) {
32
                $originalBusinessQuery->setCreatedOn(
33
                    $this->dateDecoder->decode((string) $xmlGroupHeader->OrgnlBizQry->CreDtTm)
34
                );
35
            }
36
37
            if (isset($xmlGroupHeader->OrgnlBizQry->MsgNmId)) {
38
                $originalBusinessQuery->setMessageNameId((string) $xmlGroupHeader->OrgnlBizQry->MsgNmId);
39
            }
40
41
            if (isset($xmlGroupHeader->MsgRcpt)) {
42
                $groupHeader->setMessageRecipient(
43
                    DTOFactory\Recipient::createFromXml($xmlGroupHeader->MsgRcpt)
44
                );
45
            }
46
47
            $groupHeader->setOriginalBusinessQuery($originalBusinessQuery);
48
        }
49
50
        if (isset($xmlGroupHeader->AddtlInf)) {
51
            $groupHeader->setAdditionalInformation((string) $xmlGroupHeader->AddtlInf);
52
        }
53
54
        if (isset($xmlGroupHeader->MsgPgntn)) {
55
            $groupHeader->setPagination(new DTO\Pagination(
56
                (string) $xmlGroupHeader->MsgPgntn->PgNb,
57
                ('true' === (string) $xmlGroupHeader->MsgPgntn->LastPgInd) ? true : false
58
            ));
59
        }
60
61
        $message->setGroupHeader($groupHeader);
62
    }
63
}
64