Test Failed
Pull Request — master (#10)
by Yo
02:26
created

ConfigurationUpdater   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 82
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 5
dl 0
loc 82
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 11 1
A update() 0 53 1
1
<?php
2
namespace Yoanm\ComposerConfigManager\Application\Updater;
3
4
use Yoanm\ComposerConfigManager\Domain\Model\Configuration;
5
6
class ConfigurationUpdater
7
{
8
    /** @var PlainValueUpdater */
9
    private $plainValueUpdater;
10
    /** @var KeywordListUpdater */
11
    private $keywordListUpdater;
12
    /** @var ListUpdater */
13
    private $listUpdater;
14
    /** @var AuthorListUpdater */
15
    private $authorListUpdater;
16
17
    public function __construct(
18
        PlainValueUpdater $plainValueUpdater,
19
        KeywordListUpdater $keywordListUpdater,
20
        ListUpdater $listUpdater,
21
        AuthorListUpdater $authorListUpdater
22
    ) {
23
        $this->plainValueUpdater = $plainValueUpdater;
24
        $this->keywordListUpdater = $keywordListUpdater;
25
        $this->listUpdater = $listUpdater;
26
        $this->authorListUpdater = $authorListUpdater;
27
    }
28
    /**
29
     * @param Configuration $baseConfiguration
30
     * @param Configuration $newConfiguration
31
     *
32
     * @return Configuration
33
     */
34
    public function update(Configuration $baseConfiguration, Configuration $newConfiguration)
35
    {
36
        return new Configuration(
37
            $this->plainValueUpdater->update(
38
                $newConfiguration->getPackageName(),
39
                $baseConfiguration->getPackageName()
40
            ),
41
            $this->plainValueUpdater->update(
42
                $newConfiguration->getType(),
43
                $baseConfiguration->getType()
44
            ),
45
            $this->plainValueUpdater->update(
46
                $newConfiguration->getLicense(),
47
                $baseConfiguration->getLicense()
48
            ),
49
            $this->plainValueUpdater->update(
50
                $newConfiguration->getPackageVersion(),
51
                $baseConfiguration->getPackageVersion()
52
            ),
53
            $this->plainValueUpdater->update(
54
                $newConfiguration->getDescription(),
55
                $baseConfiguration->getDescription()
56
            ),
57
            $this->keywordListUpdater->update(
58
                $newConfiguration->getKeywordList(),
59
                $baseConfiguration->getKeywordList()
60
            ),
61
            $this->authorListUpdater->update($newConfiguration->getAuthorList(), $baseConfiguration->getAuthorList()),
62
            $this->listUpdater->update(
63
                $newConfiguration->getProvidedPackageList(),
64
                $baseConfiguration->getProvidedPackageList()
65
            ),
66
            $this->listUpdater->update(
67
                $newConfiguration->getSuggestedPackageList(),
68
                $baseConfiguration->getSuggestedPackageList()
69
            ),
70
            $this->listUpdater->update($newConfiguration->getSupportList(), $baseConfiguration->getSupportList()),
71
            $this->listUpdater->update($newConfiguration->getAutoloadList(), $baseConfiguration->getAutoloadList()),
72
            $this->listUpdater->update(
73
                $newConfiguration->getAutoloadDevList(),
74
                $baseConfiguration->getAutoloadDevList()
75
            ),
76
            $this->listUpdater->update(
77
                $newConfiguration->getRequiredPackageList(),
78
                $baseConfiguration->getRequiredPackageList()
79
            ),
80
            $this->listUpdater->update(
81
                $newConfiguration->getRequiredDevPackageList(),
82
                $baseConfiguration->getRequiredDevPackageList()
83
            ),
84
            $this->listUpdater->update($newConfiguration->getScriptList(), $baseConfiguration->getScriptList())
85
        );
86
    }
87
}
88