Passed
Push — master ( 2aad05...4fe473 )
by Yo
02:45
created

ConfigurationUpdater   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 82
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 5
dl 0
loc 82
ccs 57
cts 57
cp 1
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 1
    public function __construct(
18
        PlainValueUpdater $plainValueUpdater,
19
        KeywordListUpdater $keywordListUpdater,
20
        ListUpdater $listUpdater,
21
        AuthorListUpdater $authorListUpdater
22
    ) {
23 1
        $this->plainValueUpdater = $plainValueUpdater;
24 1
        $this->keywordListUpdater = $keywordListUpdater;
25 1
        $this->listUpdater = $listUpdater;
26 1
        $this->authorListUpdater = $authorListUpdater;
27 1
    }
28
    /**
29
     * @param Configuration $baseConfiguration
30
     * @param Configuration $newConfiguration
31
     *
32
     * @return Configuration
33
     */
34 1
    public function update(Configuration $baseConfiguration, Configuration $newConfiguration)
35
    {
36 1
        return new Configuration(
37 1
            $this->plainValueUpdater->update(
38 1
                $newConfiguration->getPackageName(),
39 1
                $baseConfiguration->getPackageName()
40 1
            ),
41 1
            $this->plainValueUpdater->update(
42 1
                $newConfiguration->getType(),
43 1
                $baseConfiguration->getType()
44 1
            ),
45 1
            $this->plainValueUpdater->update(
46 1
                $newConfiguration->getLicense(),
47 1
                $baseConfiguration->getLicense()
48 1
            ),
49 1
            $this->plainValueUpdater->update(
50 1
                $newConfiguration->getPackageVersion(),
51 1
                $baseConfiguration->getPackageVersion()
52 1
            ),
53 1
            $this->plainValueUpdater->update(
54 1
                $newConfiguration->getDescription(),
55 1
                $baseConfiguration->getDescription()
56 1
            ),
57 1
            $this->keywordListUpdater->update(
58 1
                $newConfiguration->getKeywordList(),
59 1
                $baseConfiguration->getKeywordList()
60 1
            ),
61 1
            $this->authorListUpdater->update($newConfiguration->getAuthorList(), $baseConfiguration->getAuthorList()),
62 1
            $this->listUpdater->update(
63 1
                $newConfiguration->getProvidedPackageList(),
64 1
                $baseConfiguration->getProvidedPackageList()
65 1
            ),
66 1
            $this->listUpdater->update(
67 1
                $newConfiguration->getSuggestedPackageList(),
68 1
                $baseConfiguration->getSuggestedPackageList()
69 1
            ),
70 1
            $this->listUpdater->update($newConfiguration->getSupportList(), $baseConfiguration->getSupportList()),
71 1
            $this->listUpdater->update($newConfiguration->getAutoloadList(), $baseConfiguration->getAutoloadList()),
72 1
            $this->listUpdater->update(
73 1
                $newConfiguration->getAutoloadDevList(),
74 1
                $baseConfiguration->getAutoloadDevList()
75 1
            ),
76 1
            $this->listUpdater->update(
77 1
                $newConfiguration->getRequiredPackageList(),
78 1
                $baseConfiguration->getRequiredPackageList()
79 1
            ),
80 1
            $this->listUpdater->update(
81 1
                $newConfiguration->getRequiredDevPackageList(),
82 1
                $baseConfiguration->getRequiredDevPackageList()
83 1
            ),
84 1
            $this->listUpdater->update($newConfiguration->getScriptList(), $baseConfiguration->getScriptList())
85 1
        );
86
    }
87
}
88