NovaParameterWriter   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 13
c 1
b 0
f 0
dl 0
loc 54
ccs 12
cts 12
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A appendToDocument() 0 10 3
1
<?php
2
3
namespace OrcaServices\NovaApi\Soap;
4
5
use DOMDocument;
6
use DOMElement;
7
8
/**
9
 * NovaParameterWriter.
10
 */
11
class NovaParameterWriter
12
{
13
    /**
14
     * Dom document.
15
     *
16
     * @var DOMDocument
17
     */
18
    private $document;
19
20
    /**
21
     * Parent element.
22
     *
23
     * @var DOMElement
24
     */
25
    private $parent;
26
27
    /**
28
     * Parameter prefix.
29
     *
30
     * @var string
31
     */
32
    private $parameterPrefix;
33
34
    /**
35
     * NovaParameterWriter constructor.
36
     *
37
     * @param DOMDocument $document DOM Document
38
     * @param DOMElement $parent Parent element
39
     * @param string $namespace Parameter namespace
40
     */
41 3
    public function __construct(DOMDocument $document, DOMElement $parent, string $namespace = 'novagp:')
42
    {
43 3
        $this->document = $document;
44 3
        $this->parent = $parent;
45 3
        $this->parameterPrefix = $namespace;
46 3
    }
47
48
    /**
49
     * Appends the given parameters to the document inside the parent element.
50
     *
51
     * @param NovaParameterMap $parameterMap Parameter map
52
     *
53
     * @return void
54
     */
55 3
    public function appendToDocument(NovaParameterMap $parameterMap)
56
    {
57 3
        foreach ($parameterMap->map as $parameterName => $value) {
58 3
            if (!$value) {
59 3
                continue;
60
            }
61
62 3
            $element = $this->document->createElement("{$this->parameterPrefix}{$parameterName}");
63 3
            $this->parent->appendChild($element);
64 3
            $element->appendChild($this->document->createTextNode($value));
65
        }
66 3
    }
67
}
68